diff --git a/go.mod b/go.mod
index 24bf919..ab56e05 100644
--- a/go.mod
+++ b/go.mod
@@ -9,7 +9,7 @@ require (
github.com/creativeprojects/go-selfupdate v1.4.0
github.com/dlclark/regexp2 v1.11.4
github.com/fatih/color v1.18.0
- github.com/go-git/go-git/v5 v5.12.0
+ github.com/go-git/go-git/v5 v5.13.1
github.com/goccy/go-json v0.10.4
github.com/goccy/go-yaml v1.15.13
github.com/neilotoole/jsoncolor v0.7.1
@@ -42,7 +42,7 @@ require (
github.com/emirpasic/gods v1.18.1 // indirect
github.com/go-fed/httpsig v1.1.0 // indirect
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 // indirect
- github.com/go-git/go-billy/v5 v5.6.0 // indirect
+ github.com/go-git/go-billy/v5 v5.6.1 // indirect
github.com/golang/groupcache v0.0.0-20241129210726-2c02b8208cf8 // indirect
github.com/google/go-github/v30 v30.1.0 // indirect
github.com/google/go-querystring v1.1.0 // indirect
@@ -61,26 +61,29 @@ require (
github.com/mattn/go-runewidth v0.0.16 // indirect
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d // indirect
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db // indirect
+ github.com/mmcloughlin/avo v0.6.0 // indirect
github.com/muesli/reflow v0.3.0 // indirect
github.com/muesli/termenv v0.15.2 // indirect
- github.com/pjbgf/sha1cd v0.3.0 // indirect
+ github.com/pjbgf/sha1cd v0.3.1 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
github.com/rivo/uniseg v0.4.7 // indirect
github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect
github.com/skeema/knownhosts v1.3.0 // indirect
github.com/spf13/pflag v1.0.5 // indirect
github.com/stretchr/testify v1.10.0 // indirect
- github.com/thlib/go-timezone-local v0.0.4 // indirect
+ github.com/thlib/go-timezone-local v0.0.6 // indirect
github.com/ulikunitz/xz v0.5.12 // indirect
github.com/xanzy/go-gitlab v0.115.0 // indirect
github.com/xanzy/ssh-agent v0.3.3 // indirect
- golang.org/x/crypto v0.31.0 // indirect
- golang.org/x/net v0.33.0 // indirect
- golang.org/x/oauth2 v0.24.0 // indirect
- golang.org/x/sys v0.28.0 // indirect
- golang.org/x/term v0.27.0 // indirect
+ golang.org/x/crypto v0.32.0 // indirect
+ golang.org/x/mod v0.22.0 // indirect
+ golang.org/x/net v0.34.0 // indirect
+ golang.org/x/oauth2 v0.25.0 // indirect
+ golang.org/x/sync v0.10.0 // indirect
+ golang.org/x/sys v0.29.0 // indirect
+ golang.org/x/term v0.28.0 // indirect
golang.org/x/text v0.21.0 // indirect
- golang.org/x/time v0.8.0 // indirect
+ golang.org/x/time v0.9.0 // indirect
golang.org/x/tools v0.28.0 // indirect
gopkg.in/go-playground/assert.v1 v1.2.1 // indirect
gopkg.in/warnings.v0 v0.1.2 // indirect
diff --git a/go.sum b/go.sum
index 4c4f0ab..ec49fb8 100644
--- a/go.sum
+++ b/go.sum
@@ -54,26 +54,26 @@ github.com/davidmz/go-pageant v1.0.2 h1:bPblRCh5jGU+Uptpz6LgMZGD5hJoOt7otgT454Wv
github.com/davidmz/go-pageant v1.0.2/go.mod h1:P2EDDnMqIwG5Rrp05dTRITj9z2zpGcD9efWSkTNKLIE=
github.com/dlclark/regexp2 v1.11.4 h1:rPYF9/LECdNymJufQKmri9gV604RvvABwgOA8un7yAo=
github.com/dlclark/regexp2 v1.11.4/go.mod h1:DHkYz0B9wPfa6wondMfaivmHpzrQ3v9q8cnmRbL6yW8=
-github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a h1:mATvB/9r/3gvcejNsXKSkQ6lcIaNec2nyfOdlTBR2lU=
-github.com/elazarl/goproxy v0.0.0-20230808193330-2592e75ae04a/go.mod h1:Ro8st/ElPeALwNFlcTpWmkr6IoMFfkjXAvTHpevnDsM=
+github.com/elazarl/goproxy v1.2.3 h1:xwIyKHbaP5yfT6O9KIeYJR5549MXRQkoQMRXGztz8YQ=
+github.com/elazarl/goproxy v1.2.3/go.mod h1:YfEbZtqP4AetfO6d40vWchF3znWX7C7Vd6ZMfdL8z64=
github.com/emirpasic/gods v1.18.1 h1:FXtiHYKDGKCW2KzwZKx0iC0PQmdlorYgdFG9jPXJ1Bc=
github.com/emirpasic/gods v1.18.1/go.mod h1:8tpGGwCnJ5H4r6BWwaV6OrWmMoPhUl5jm/FMNAnJvWQ=
github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU=
github.com/fatih/color v1.16.0/go.mod h1:fL2Sau1YI5c0pdGEVCbKQbLXB6edEj1ZgiY4NijnWvE=
github.com/fatih/color v1.18.0 h1:S8gINlzdQ840/4pfAwic/ZE0djQEH3wM94VfqLTZcOM=
github.com/fatih/color v1.18.0/go.mod h1:4FelSpRwEGDpQ12mAdzqdOukCy4u8WUtOY6lkT/6HfU=
-github.com/gliderlabs/ssh v0.3.7 h1:iV3Bqi942d9huXnzEF2Mt+CY9gLu8DNM4Obd+8bODRE=
-github.com/gliderlabs/ssh v0.3.7/go.mod h1:zpHEXBstFnQYtGnB8k8kQLol82umzn/2/snG7alWVD8=
+github.com/gliderlabs/ssh v0.3.8 h1:a4YXD1V7xMF9g5nTkdfnja3Sxy1PVDCj1Zg4Wb8vY6c=
+github.com/gliderlabs/ssh v0.3.8/go.mod h1:xYoytBv1sV0aL3CavoDuJIQNURXkkfPA/wxQ1pL1fAU=
github.com/go-fed/httpsig v1.1.0 h1:9M+hb0jkEICD8/cAiNqEB66R87tTINszBRTjwjQzWcI=
github.com/go-fed/httpsig v1.1.0/go.mod h1:RCMrTZvN1bJYtofsG4rd5NaO5obxQ5xBkdiS7xsT7bM=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376 h1:+zs/tPmkDkHx3U66DAb0lQFJrpS6731Oaa12ikc+DiI=
github.com/go-git/gcfg v1.5.1-0.20230307220236-3a3c6141e376/go.mod h1:an3vInlBmSxCcxctByoQdvwPiA7DTK7jaaFDBTtu0ic=
-github.com/go-git/go-billy/v5 v5.6.0 h1:w2hPNtoehvJIxR00Vb4xX94qHQi/ApZfX+nBE2Cjio8=
-github.com/go-git/go-billy/v5 v5.6.0/go.mod h1:sFDq7xD3fn3E0GOwUSZqHo9lrkmx8xJhA0ZrfvjBRGM=
+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-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.12.0 h1:7Md+ndsjrzZxbddRDZjF14qK+NN56sy6wkqaVrjZtys=
-github.com/go-git/go-git/v5 v5.12.0/go.mod h1:FTM9VKtnI2m65hNI/TenDDDnUf2Q9FHnXYjuz9i5OEY=
+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/goccy/go-json v0.10.4 h1:JSwxQzIqKfmFX1swYPpUThQZp/Ka4wzJdK0LWVytLPM=
github.com/goccy/go-json v0.10.4/go.mod h1:oq7eo15ShAhp70Anwd5lgX2pLfOS3QCiwU/PULtXL6M=
github.com/goccy/go-yaml v1.15.13 h1:Xd87Yddmr2rC1SLLTm2MNDcTjeO/GYo0JGiww6gSTDg=
@@ -139,6 +139,8 @@ github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d h1:5PJl274Y63IEHC+7izoQ
github.com/mgutz/ansi v0.0.0-20200706080929-d51e80ef957d/go.mod h1:01TrycV0kFyexm33Z7vhZRXopbI8J3TDReVlkTgMUxE=
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db h1:62I3jR2EmQ4l5rM/4FEfDWcRD+abF5XlKShorW5LRoQ=
github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db/go.mod h1:l0dey0ia/Uv7NcFFVbCLtqEBQbrT4OCwCSKTEv6enCw=
+github.com/mmcloughlin/avo v0.6.0 h1:QH6FU8SKoTLaVs80GA8TJuLNkUYl4VokHKlPhVDg4YY=
+github.com/mmcloughlin/avo v0.6.0/go.mod h1:8CoAGaCSYXtCPR+8y18Y9aB/kxb8JSS6FRI7mSkvD+8=
github.com/muesli/reflow v0.3.0 h1:IFsN6K9NfGtjeggFP+68I4chLZV2yIKsXJFNZ+eWh6s=
github.com/muesli/reflow v0.3.0/go.mod h1:pbwTDkVPibjO2kyvBQRBxTWEEGDGq0FlB1BIKtnHY/8=
github.com/muesli/termenv v0.15.2 h1:GohcuySI0QmI3wN8Ok9PtKGkgkFIk7y6Vpb5PvrY+Wo=
@@ -149,8 +151,8 @@ github.com/nwidger/jsoncolor v0.3.2 h1:rVJJlwAWDJShnbTYOQ5RM7yTA20INyKXlJ/fg4JMh
github.com/nwidger/jsoncolor v0.3.2/go.mod h1:Cs34umxLbJvgBMnVNVqhji9BhoT/N/KinHqZptQ7cf4=
github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k=
github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY=
-github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4=
-github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI=
+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/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
@@ -159,8 +161,8 @@ github.com/rivo/uniseg v0.1.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJ
github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc=
github.com/rivo/uniseg v0.4.7 h1:WUdvkW8uEhrYfLC4ZzdpI2ztxP1I582+49Oc5Mq64VQ=
github.com/rivo/uniseg v0.4.7/go.mod h1:FN3SvrM+Zdj16jyLfmOkMNblXMcoc8DfTHruCPUcx88=
-github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
-github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
+github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU5NdKM8=
+github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4=
github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
github.com/sarumaj/go-super v1.0.0 h1:zQDzAQyKwMoHoHzOqPx9QiARIteizt6bnVcIKusmyKw=
github.com/sarumaj/go-super v1.0.0/go.mod h1:pPeMPlfHJGB6ssR/9Ed578J7/8RE2vPNunJlfB1tr2w=
@@ -193,8 +195,8 @@ github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO
github.com/stretchr/testify v1.8.4/go.mod h1:sz/lmYIOXD/1dqDmKjjqLyZ2RngseejIcXlSw2iwfAo=
github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
-github.com/thlib/go-timezone-local v0.0.4 h1:9oqkZLirWUtrFmhF/7WxR8Y0TBAGaThe95w6K3pLKBk=
-github.com/thlib/go-timezone-local v0.0.4/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI=
+github.com/thlib/go-timezone-local v0.0.6 h1:Ii3QJ4FhosL/+eCZl6Hsdr4DDU4tfevNoV83yAEo2tU=
+github.com/thlib/go-timezone-local v0.0.6/go.mod h1:/Tnicc6m/lsJE0irFMA0LfIwTBo4QP7A8IfyIv4zZKI=
github.com/ulikunitz/xz v0.5.12 h1:37Nm15o69RwBkXM0J6A5OlE67RZTfzUxTj8fB3dfcsc=
github.com/ulikunitz/xz v0.5.12/go.mod h1:nbz6k7qbPmH4IRqmfOplQw/tblSgqTqBwxkY0oWt/14=
github.com/xanzy/go-gitlab v0.115.0 h1:6DmtItNcVe+At/liXSgfE/DZNZrGfalQmBRmOcJjOn8=
@@ -209,24 +211,28 @@ golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPh
golang.org/x/crypto v0.0.0-20210513164829-c07d793c2f9a/go.mod h1:P+XmwS30IXTQdn5tA2iutPOUgjI07+tq3H3K9MVA1s8=
golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc=
golang.org/x/crypto v0.0.0-20220622213112-05595931fe9d/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4=
-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/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
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/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg=
golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y=
golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c=
-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/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U=
-golang.org/x/oauth2 v0.24.0 h1:KTBBxWqUa0ykRPLtV69rRto9TLXcqYkeswu48x/gvNE=
-golang.org/x/oauth2 v0.24.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/oauth2 v0.25.0 h1:CY4y7XT9v0cRI9oupztF8AgiIu99L/ksR/Xp/6jrZ70=
+golang.org/x/oauth2 v0.25.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
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/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
@@ -243,13 +249,13 @@ golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBc
golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.14.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-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/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=
golang.org/x/term v0.14.0/go.mod h1:TySc+nGkYR6qt8km8wUhuFRTVSMIX3XPR58y2lC8vww=
-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/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
@@ -257,8 +263,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/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/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc=
diff --git a/vendor/github.com/go-git/go-git/v5/COMPATIBILITY.md b/vendor/github.com/go-git/go-git/v5/COMPATIBILITY.md
index ff0c22c..ba1fb90 100644
--- a/vendor/github.com/go-git/go-git/v5/COMPATIBILITY.md
+++ b/vendor/github.com/go-git/go-git/v5/COMPATIBILITY.md
@@ -11,7 +11,7 @@ compatibility status with go-git.
| `init` | `--bare` | ✅ | | |
| `init` | `--template`
`--separate-git-dir`
`--shared` | ❌ | | |
| `clone` | | ✅ | | - [PlainClone](_examples/clone/main.go) |
-| `clone` | Authentication:
- none
- access token
- username + password
- ssh | ✅ | | - [clone ssh](_examples/clone/auth/ssh/main.go)
- [clone access token](_examples/clone/auth/basic/access_token/main.go)
- [clone user + password](_examples/clone/auth/basic/username_password/main.go) |
+| `clone` | Authentication:
- none
- access token
- username + password
- ssh | ✅ | | - [clone ssh (private_key)](_examples/clone/auth/ssh/private_key/main.go)
- [clone ssh (ssh_agent)](_examples/clone/auth/ssh/ssh_agent/main.go)
- [clone access token](_examples/clone/auth/basic/access_token/main.go)
- [clone user + password](_examples/clone/auth/basic/username_password/main.go) |
| `clone` | `--progress`
`--single-branch`
`--depth`
`--origin`
`--recurse-submodules`
`--shared` | ✅ | | - [recurse submodules](_examples/clone/main.go)
- [progress](_examples/progress/main.go) |
## Basic snapshotting
@@ -34,6 +34,7 @@ compatibility status with go-git.
| `merge` | | ⚠️ (partial) | Fast-forward only | |
| `mergetool` | | ❌ | | |
| `stash` | | ❌ | | |
+| `sparse-checkout` | | ✅ | | - [sparse-checkout](_examples/sparse-checkout/main.go) |
| `tag` | | ✅ | | - [tag](_examples/tag/main.go)
- [tag create and push](_examples/tag-create-push/main.go) |
## Sharing and updating projects
diff --git a/vendor/github.com/go-git/go-git/v5/CONTRIBUTING.md b/vendor/github.com/go-git/go-git/v5/CONTRIBUTING.md
index fce2532..a5b0182 100644
--- a/vendor/github.com/go-git/go-git/v5/CONTRIBUTING.md
+++ b/vendor/github.com/go-git/go-git/v5/CONTRIBUTING.md
@@ -31,6 +31,13 @@ In order for a PR to be accepted it needs to pass a list of requirements:
- If the PR is a new feature, it has to come with a suite of unit tests, that tests the new functionality.
- In any case, all the PRs have to pass the personal evaluation of at least one of the maintainers of go-git.
+### Branches
+
+The `master` branch is currently used for maintaining the `v5` major release only. The accepted changes would
+be dependency bumps, bug fixes and small changes that aren't needed for `v6`. New development should target the
+`v6-exp` branch, and if agreed with at least one go-git maintainer, it can be back ported to `v5` by creating
+a new PR that targets `master`.
+
### Format of the commit message
Every commit message should describe what was changed, under which context and, if applicable, the GitHub issue it relates to:
diff --git a/vendor/github.com/go-git/go-git/v5/blame.go b/vendor/github.com/go-git/go-git/v5/blame.go
index 2a877dc..e3cb39a 100644
--- a/vendor/github.com/go-git/go-git/v5/blame.go
+++ b/vendor/github.com/go-git/go-git/v5/blame.go
@@ -97,13 +97,10 @@ func Blame(c *object.Commit, path string) (*BlameResult, error) {
if err != nil {
return nil, err
}
- if finished == true {
+ if finished {
break
}
}
- if err != nil {
- return nil, err
- }
b.lineToCommit = make([]*object.Commit, finalLength)
for i := range needsMap {
@@ -309,8 +306,8 @@ func (b *blame) addBlames(curItems []*queueItem) (bool, error) {
for h := range hunks {
hLines := countLines(hunks[h].Text)
for hl := 0; hl < hLines; hl++ {
- switch {
- case hunks[h].Type == diffmatchpatch.DiffEqual:
+ switch hunks[h].Type {
+ case diffmatchpatch.DiffEqual:
prevl++
curl++
if curl == curItem.NeedsMap[need].Cur {
@@ -322,7 +319,7 @@ func (b *blame) addBlames(curItems []*queueItem) (bool, error) {
break out
}
}
- case hunks[h].Type == diffmatchpatch.DiffInsert:
+ case diffmatchpatch.DiffInsert:
curl++
if curl == curItem.NeedsMap[need].Cur {
// the line we want is added, it may have been added here (or by another parent), skip it for now
@@ -331,7 +328,7 @@ func (b *blame) addBlames(curItems []*queueItem) (bool, error) {
break out
}
}
- case hunks[h].Type == diffmatchpatch.DiffDelete:
+ case diffmatchpatch.DiffDelete:
prevl += hLines
continue out
default:
diff --git a/vendor/github.com/go-git/go-git/v5/config/config.go b/vendor/github.com/go-git/go-git/v5/config/config.go
index 6d41c15..33f6e37 100644
--- a/vendor/github.com/go-git/go-git/v5/config/config.go
+++ b/vendor/github.com/go-git/go-git/v5/config/config.go
@@ -252,6 +252,7 @@ const (
extensionsSection = "extensions"
fetchKey = "fetch"
urlKey = "url"
+ pushurlKey = "pushurl"
bareKey = "bare"
worktreeKey = "worktree"
commentCharKey = "commentChar"
@@ -633,6 +634,7 @@ func (c *RemoteConfig) unmarshal(s *format.Subsection) error {
c.Name = c.raw.Name
c.URLs = append([]string(nil), c.raw.Options.GetAll(urlKey)...)
+ c.URLs = append(c.URLs, c.raw.Options.GetAll(pushurlKey)...)
c.Fetch = fetch
c.Mirror = c.raw.Options.Get(mirrorKey) == "true"
diff --git a/vendor/github.com/go-git/go-git/v5/internal/revision/scanner.go b/vendor/github.com/go-git/go-git/v5/internal/revision/scanner.go
index c46c21b..2444f33 100644
--- a/vendor/github.com/go-git/go-git/v5/internal/revision/scanner.go
+++ b/vendor/github.com/go-git/go-git/v5/internal/revision/scanner.go
@@ -43,6 +43,11 @@ func tokenizeExpression(ch rune, tokenType token, check runeCategoryValidator, r
return tokenType, string(data), nil
}
+// maxRevisionLength holds the maximum length that will be parsed for a
+// revision. Git itself doesn't enforce a max length, but rather leans on
+// the OS to enforce it via its ARG_MAX.
+const maxRevisionLength = 128 * 1024 // 128kb
+
var zeroRune = rune(0)
// scanner represents a lexical scanner.
@@ -52,7 +57,7 @@ type scanner struct {
// newScanner returns a new instance of scanner.
func newScanner(r io.Reader) *scanner {
- return &scanner{r: bufio.NewReader(r)}
+ return &scanner{r: bufio.NewReader(io.LimitReader(r, maxRevisionLength))}
}
// Scan extracts tokens and their strings counterpart
diff --git a/vendor/github.com/go-git/go-git/v5/options.go b/vendor/github.com/go-git/go-git/v5/options.go
index d7776da..3cd0f95 100644
--- a/vendor/github.com/go-git/go-git/v5/options.go
+++ b/vendor/github.com/go-git/go-git/v5/options.go
@@ -416,6 +416,9 @@ type ResetOptions struct {
// the index (resetting it to the tree of Commit) and the working tree
// depending on Mode. If empty MixedReset is used.
Mode ResetMode
+ // Files, if not empty will constrain the reseting the index to only files
+ // specified in this list.
+ Files []string
}
// Validate validates the fields and sets the default values.
@@ -790,3 +793,26 @@ type PlainInitOptions struct {
// Validate validates the fields and sets the default values.
func (o *PlainInitOptions) Validate() error { return nil }
+
+var (
+ ErrNoRestorePaths = errors.New("you must specify path(s) to restore")
+)
+
+// RestoreOptions describes how a restore should be performed.
+type RestoreOptions struct {
+ // Marks to restore the content in the index
+ Staged bool
+ // Marks to restore the content of the working tree
+ Worktree bool
+ // List of file paths that will be restored
+ Files []string
+}
+
+// Validate validates the fields and sets the default values.
+func (o *RestoreOptions) Validate() error {
+ if len(o.Files) == 0 {
+ return ErrNoRestorePaths
+ }
+
+ return nil
+}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
index aca5d0d..92df5a3 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/gitignore/dir.go
@@ -64,6 +64,10 @@ func ReadPatterns(fs billy.Filesystem, path []string) (ps []Pattern, err error)
for _, fi := range fis {
if fi.IsDir() && fi.Name() != gitDir {
+ if NewMatcher(ps).Match(append(path, fi.Name()), true) {
+ continue
+ }
+
var subps []Pattern
subps, err = ReadPatterns(fs, append(path, fi.Name()))
if err != nil {
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go
index 6778cf7..fc25d37 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/index/decoder.go
@@ -24,8 +24,8 @@ var (
// ErrInvalidChecksum is returned by Decode if the SHA1 hash mismatch with
// the read content
ErrInvalidChecksum = errors.New("invalid checksum")
-
- errUnknownExtension = errors.New("unknown extension")
+ // ErrUnknownExtension is returned when an index extension is encountered that is considered mandatory
+ ErrUnknownExtension = errors.New("unknown extension")
)
const (
@@ -39,6 +39,7 @@ const (
// A Decoder reads and decodes index files from an input stream.
type Decoder struct {
+ buf *bufio.Reader
r io.Reader
hash hash.Hash
lastEntry *Entry
@@ -49,8 +50,10 @@ type Decoder struct {
// NewDecoder returns a new decoder that reads from r.
func NewDecoder(r io.Reader) *Decoder {
h := hash.New(hash.CryptoType)
+ buf := bufio.NewReader(r)
return &Decoder{
- r: io.TeeReader(r, h),
+ buf: buf,
+ r: io.TeeReader(buf, h),
hash: h,
extReader: bufio.NewReader(nil),
}
@@ -210,71 +213,75 @@ func (d *Decoder) readExtensions(idx *Index) error {
// count that they are not supported by jgit or libgit
var expected []byte
+ var peeked []byte
var err error
- var header [4]byte
+ // we should always be able to peek for 4 bytes (header) + 4 bytes (extlen) + final hash
+ // if this fails, we know that we're at the end of the index
+ peekLen := 4 + 4 + d.hash.Size()
+
for {
expected = d.hash.Sum(nil)
-
- var n int
- if n, err = io.ReadFull(d.r, header[:]); err != nil {
- if n == 0 {
- err = io.EOF
- }
-
+ peeked, err = d.buf.Peek(peekLen)
+ if len(peeked) < peekLen {
+ // there can't be an extension at this point, so let's bail out
break
}
+ if err != nil {
+ return err
+ }
- err = d.readExtension(idx, header[:])
+ err = d.readExtension(idx)
if err != nil {
- break
+ return err
}
}
- if err != errUnknownExtension {
+ return d.readChecksum(expected)
+}
+
+func (d *Decoder) readExtension(idx *Index) error {
+ var header [4]byte
+
+ if _, err := io.ReadFull(d.r, header[:]); err != nil {
return err
}
- return d.readChecksum(expected, header)
-}
+ r, err := d.getExtensionReader()
+ if err != nil {
+ return err
+ }
-func (d *Decoder) readExtension(idx *Index, header []byte) error {
switch {
- case bytes.Equal(header, treeExtSignature):
- r, err := d.getExtensionReader()
- if err != nil {
- return err
- }
-
+ case bytes.Equal(header[:], treeExtSignature):
idx.Cache = &Tree{}
d := &treeExtensionDecoder{r}
if err := d.Decode(idx.Cache); err != nil {
return err
}
- case bytes.Equal(header, resolveUndoExtSignature):
- r, err := d.getExtensionReader()
- if err != nil {
- return err
- }
-
+ case bytes.Equal(header[:], resolveUndoExtSignature):
idx.ResolveUndo = &ResolveUndo{}
d := &resolveUndoDecoder{r}
if err := d.Decode(idx.ResolveUndo); err != nil {
return err
}
- case bytes.Equal(header, endOfIndexEntryExtSignature):
- r, err := d.getExtensionReader()
- if err != nil {
- return err
- }
-
+ case bytes.Equal(header[:], endOfIndexEntryExtSignature):
idx.EndOfIndexEntry = &EndOfIndexEntry{}
d := &endOfIndexEntryDecoder{r}
if err := d.Decode(idx.EndOfIndexEntry); err != nil {
return err
}
default:
- return errUnknownExtension
+ // See https://git-scm.com/docs/index-format, which says:
+ // If the first byte is 'A'..'Z' the extension is optional and can be ignored.
+ if header[0] < 'A' || header[0] > 'Z' {
+ return ErrUnknownExtension
+ }
+
+ d := &unknownExtensionDecoder{r}
+ if err := d.Decode(); err != nil {
+ return err
+ }
}
return nil
@@ -290,11 +297,10 @@ func (d *Decoder) getExtensionReader() (*bufio.Reader, error) {
return d.extReader, nil
}
-func (d *Decoder) readChecksum(expected []byte, alreadyRead [4]byte) error {
+func (d *Decoder) readChecksum(expected []byte) error {
var h plumbing.Hash
- copy(h[:4], alreadyRead[:])
- if _, err := io.ReadFull(d.r, h[4:]); err != nil {
+ if _, err := io.ReadFull(d.r, h[:]); err != nil {
return err
}
@@ -476,3 +482,22 @@ func (d *endOfIndexEntryDecoder) Decode(e *EndOfIndexEntry) error {
_, err = io.ReadFull(d.r, e.Hash[:])
return err
}
+
+type unknownExtensionDecoder struct {
+ r *bufio.Reader
+}
+
+func (d *unknownExtensionDecoder) Decode() error {
+ var buf [1024]byte
+
+ for {
+ _, err := d.r.Read(buf[:])
+ if err == io.EOF {
+ break
+ }
+ if err != nil {
+ return err
+ }
+ }
+ return nil
+}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go
index fa2d814..c232e03 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/index/encoder.go
@@ -3,8 +3,11 @@ package index
import (
"bytes"
"errors"
+ "fmt"
"io"
+ "path"
"sort"
+ "strings"
"time"
"github.com/go-git/go-git/v5/plumbing/hash"
@@ -13,7 +16,7 @@ import (
var (
// EncodeVersionSupported is the range of supported index versions
- EncodeVersionSupported uint32 = 3
+ EncodeVersionSupported uint32 = 4
// ErrInvalidTimestamp is returned by Encode if a Index with a Entry with
// negative timestamp values
@@ -22,20 +25,25 @@ var (
// An Encoder writes an Index to an output stream.
type Encoder struct {
- w io.Writer
- hash hash.Hash
+ w io.Writer
+ hash hash.Hash
+ lastEntry *Entry
}
// NewEncoder returns a new encoder that writes to w.
func NewEncoder(w io.Writer) *Encoder {
h := hash.New(hash.CryptoType)
mw := io.MultiWriter(w, h)
- return &Encoder{mw, h}
+ return &Encoder{mw, h, nil}
}
// Encode writes the Index to the stream of the encoder.
func (e *Encoder) Encode(idx *Index) error {
- // TODO: support v4
+ return e.encode(idx, true)
+}
+
+func (e *Encoder) encode(idx *Index, footer bool) error {
+
// TODO: support extensions
if idx.Version > EncodeVersionSupported {
return ErrUnsupportedVersion
@@ -49,7 +57,10 @@ func (e *Encoder) Encode(idx *Index) error {
return err
}
- return e.encodeFooter()
+ if footer {
+ return e.encodeFooter()
+ }
+ return nil
}
func (e *Encoder) encodeHeader(idx *Index) error {
@@ -64,7 +75,7 @@ func (e *Encoder) encodeEntries(idx *Index) error {
sort.Sort(byName(idx.Entries))
for _, entry := range idx.Entries {
- if err := e.encodeEntry(entry); err != nil {
+ if err := e.encodeEntry(idx, entry); err != nil {
return err
}
entryLength := entryHeaderLength
@@ -73,7 +84,7 @@ func (e *Encoder) encodeEntries(idx *Index) error {
}
wrote := entryLength + len(entry.Name)
- if err := e.padEntry(wrote); err != nil {
+ if err := e.padEntry(idx, wrote); err != nil {
return err
}
}
@@ -81,7 +92,7 @@ func (e *Encoder) encodeEntries(idx *Index) error {
return nil
}
-func (e *Encoder) encodeEntry(entry *Entry) error {
+func (e *Encoder) encodeEntry(idx *Index, entry *Entry) error {
sec, nsec, err := e.timeToUint32(&entry.CreatedAt)
if err != nil {
return err
@@ -132,9 +143,68 @@ func (e *Encoder) encodeEntry(entry *Entry) error {
return err
}
+ switch idx.Version {
+ case 2, 3:
+ err = e.encodeEntryName(entry)
+ case 4:
+ err = e.encodeEntryNameV4(entry)
+ default:
+ err = ErrUnsupportedVersion
+ }
+
+ return err
+}
+
+func (e *Encoder) encodeEntryName(entry *Entry) error {
return binary.Write(e.w, []byte(entry.Name))
}
+func (e *Encoder) encodeEntryNameV4(entry *Entry) error {
+ name := entry.Name
+ l := 0
+ if e.lastEntry != nil {
+ dir := path.Dir(e.lastEntry.Name) + "/"
+ if strings.HasPrefix(entry.Name, dir) {
+ l = len(e.lastEntry.Name) - len(dir)
+ name = strings.TrimPrefix(entry.Name, dir)
+ } else {
+ l = len(e.lastEntry.Name)
+ }
+ }
+
+ e.lastEntry = entry
+
+ err := binary.WriteVariableWidthInt(e.w, int64(l))
+ if err != nil {
+ return err
+ }
+
+ return binary.Write(e.w, []byte(name+string('\x00')))
+}
+
+func (e *Encoder) encodeRawExtension(signature string, data []byte) error {
+ if len(signature) != 4 {
+ return fmt.Errorf("invalid signature length")
+ }
+
+ _, err := e.w.Write([]byte(signature))
+ if err != nil {
+ return err
+ }
+
+ err = binary.WriteUint32(e.w, uint32(len(data)))
+ if err != nil {
+ return err
+ }
+
+ _, err = e.w.Write(data)
+ if err != nil {
+ return err
+ }
+
+ return nil
+}
+
func (e *Encoder) timeToUint32(t *time.Time) (uint32, uint32, error) {
if t.IsZero() {
return 0, 0, nil
@@ -147,7 +217,11 @@ func (e *Encoder) timeToUint32(t *time.Time) (uint32, uint32, error) {
return uint32(t.Unix()), uint32(t.Nanosecond()), nil
}
-func (e *Encoder) padEntry(wrote int) error {
+func (e *Encoder) padEntry(idx *Index, wrote int) error {
+ if idx.Version == 4 {
+ return nil
+ }
+
padLen := 8 - wrote%8
_, err := e.w.Write(bytes.Repeat([]byte{'\x00'}, padLen))
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.go
index 07a6112..a60ec0b 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/delta_index.go
@@ -32,19 +32,17 @@ func (idx *deltaIndex) findMatch(src, tgt []byte, tgtOffset int) (srcOffset, l i
return 0, -1
}
- if len(tgt) >= tgtOffset+s && len(src) >= blksz {
- h := hashBlock(tgt, tgtOffset)
- tIdx := h & idx.mask
- eIdx := idx.table[tIdx]
- if eIdx != 0 {
- srcOffset = idx.entries[eIdx]
- } else {
- return
- }
-
- l = matchLength(src, tgt, tgtOffset, srcOffset)
+ h := hashBlock(tgt, tgtOffset)
+ tIdx := h & idx.mask
+ eIdx := idx.table[tIdx]
+ if eIdx == 0 {
+ return
}
+ srcOffset = idx.entries[eIdx]
+
+ l = matchLength(src, tgt, tgtOffset, srcOffset)
+
return
}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.go
index 960769c..a9c6b9b 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/packfile/patch_delta.go
@@ -26,6 +26,13 @@ var (
const (
payload = 0x7f // 0111 1111
continuation = 0x80 // 1000 0000
+
+ // maxPatchPreemptionSize defines what is the max size of bytes to be
+ // premptively made available for a patch operation.
+ maxPatchPreemptionSize uint = 65536
+
+ // minDeltaSize defines the smallest size for a delta.
+ minDeltaSize = 4
)
type offset struct {
@@ -86,9 +93,13 @@ func ApplyDelta(target, base plumbing.EncodedObject, delta []byte) (err error) {
}
// PatchDelta returns the result of applying the modification deltas in delta to src.
-// An error will be returned if delta is corrupted (ErrDeltaLen) or an action command
+// An error will be returned if delta is corrupted (ErrInvalidDelta) or an action command
// is not copy from source or copy from delta (ErrDeltaCmd).
func PatchDelta(src, delta []byte) ([]byte, error) {
+ if len(src) == 0 || len(delta) < minDeltaSize {
+ return nil, ErrInvalidDelta
+ }
+
b := &bytes.Buffer{}
if err := patchDelta(b, src, delta); err != nil {
return nil, err
@@ -239,7 +250,9 @@ func patchDelta(dst *bytes.Buffer, src, delta []byte) error {
remainingTargetSz := targetSz
var cmd byte
- dst.Grow(int(targetSz))
+
+ growSz := min(targetSz, maxPatchPreemptionSize)
+ dst.Grow(int(growSz))
for {
if len(delta) == 0 {
return ErrInvalidDelta
@@ -403,6 +416,10 @@ func patchDeltaWriter(dst io.Writer, base io.ReaderAt, delta io.Reader,
// This must be called twice on the delta data buffer, first to get the
// expected source buffer size, and again to get the target buffer size.
func decodeLEB128(input []byte) (uint, []byte) {
+ if len(input) == 0 {
+ return 0, input
+ }
+
var num, sz uint
var b byte
for {
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.go b/vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.go
index fbb137d..706d984 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/format/pktline/scanner.go
@@ -140,6 +140,8 @@ func asciiHexToByte(b byte) (byte, error) {
return b - '0', nil
case b >= 'a' && b <= 'f':
return b - 'a' + 10, nil
+ case b >= 'A' && b <= 'F':
+ return b - 'A' + 10, nil
default:
return 0, ErrInvalidPktLen
}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/object/signature.go b/vendor/github.com/go-git/go-git/v5/plumbing/object/signature.go
index 91cf371..f9c3d30 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/object/signature.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/object/signature.go
@@ -19,6 +19,7 @@ var (
// a PKCS#7 (S/MIME) signature.
x509SignatureFormat = signatureFormat{
[]byte("-----BEGIN CERTIFICATE-----"),
+ []byte("-----BEGIN SIGNED MESSAGE-----"),
}
// sshSignatureFormat is the format of an SSH signature.
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/object/tree.go b/vendor/github.com/go-git/go-git/v5/plumbing/object/tree.go
index 0fd0e51..2e1b789 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/object/tree.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/object/tree.go
@@ -295,6 +295,7 @@ func (s TreeEntrySorter) Swap(i, j int) {
}
// Encode transforms a Tree into a plumbing.EncodedObject.
+// The tree entries must be sorted by name.
func (t *Tree) Encode(o plumbing.EncodedObject) (err error) {
o.SetType(plumbing.TreeObject)
w, err := o.Writer()
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/filter.go b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/filter.go
new file mode 100644
index 0000000..145fc71
--- /dev/null
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/filter.go
@@ -0,0 +1,76 @@
+package packp
+
+import (
+ "errors"
+ "fmt"
+ "github.com/go-git/go-git/v5/plumbing"
+ "net/url"
+ "strings"
+)
+
+var ErrUnsupportedObjectFilterType = errors.New("unsupported object filter type")
+
+// Filter values enable the partial clone capability which causes
+// the server to omit objects that match the filter.
+//
+// See [Git's documentation] for more details.
+//
+// [Git's documentation]: https://github.com/git/git/blob/e02ecfcc534e2021aae29077a958dd11c3897e4c/Documentation/rev-list-options.txt#L948
+type Filter string
+
+type BlobLimitPrefix string
+
+const (
+ BlobLimitPrefixNone BlobLimitPrefix = ""
+ BlobLimitPrefixKibi BlobLimitPrefix = "k"
+ BlobLimitPrefixMebi BlobLimitPrefix = "m"
+ BlobLimitPrefixGibi BlobLimitPrefix = "g"
+)
+
+// FilterBlobNone omits all blobs.
+func FilterBlobNone() Filter {
+ return "blob:none"
+}
+
+// FilterBlobLimit omits blobs of size at least n bytes (when prefix is
+// BlobLimitPrefixNone), n kibibytes (when prefix is BlobLimitPrefixKibi),
+// n mebibytes (when prefix is BlobLimitPrefixMebi) or n gibibytes (when
+// prefix is BlobLimitPrefixGibi). n can be zero, in which case all blobs
+// will be omitted.
+func FilterBlobLimit(n uint64, prefix BlobLimitPrefix) Filter {
+ return Filter(fmt.Sprintf("blob:limit=%d%s", n, prefix))
+}
+
+// FilterTreeDepth omits all blobs and trees whose depth from the root tree
+// is larger or equal to depth.
+func FilterTreeDepth(depth uint64) Filter {
+ return Filter(fmt.Sprintf("tree:%d", depth))
+}
+
+// FilterObjectType omits all objects which are not of the requested type t.
+// Supported types are TagObject, CommitObject, TreeObject and BlobObject.
+func FilterObjectType(t plumbing.ObjectType) (Filter, error) {
+ switch t {
+ case plumbing.TagObject:
+ fallthrough
+ case plumbing.CommitObject:
+ fallthrough
+ case plumbing.TreeObject:
+ fallthrough
+ case plumbing.BlobObject:
+ return Filter(fmt.Sprintf("object:type=%s", t.String())), nil
+ default:
+ return "", fmt.Errorf("%w: %s", ErrUnsupportedObjectFilterType, t.String())
+ }
+}
+
+// FilterCombine combines multiple Filter values together.
+func FilterCombine(filters ...Filter) Filter {
+ var escapedFilters []string
+
+ for _, filter := range filters {
+ escapedFilters = append(escapedFilters, url.QueryEscape(string(filter)))
+ }
+
+ return Filter(fmt.Sprintf("combine:%s", strings.Join(escapedFilters, "+")))
+}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.go b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.go
index 0116f96..01d95a3 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/sideband/demux.go
@@ -114,7 +114,7 @@ func (d *Demuxer) nextPackData() ([]byte, error) {
size := len(content)
if size == 0 {
- return nil, nil
+ return nil, io.EOF
} else if size > d.max {
return nil, ErrMaxPackedExceeded
}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.go b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.go
index a9ddb53..d760ad6 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/srvresp.go
@@ -120,6 +120,9 @@ func (r *ServerResponse) decodeACKLine(line []byte) error {
}
sp := bytes.Index(line, []byte(" "))
+ if sp+41 > len(line) {
+ return fmt.Errorf("malformed ACK %q", line)
+ }
h := plumbing.NewHash(string(line[sp+1 : sp+41]))
r.ACKs = append(r.ACKs, h)
return nil
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.go b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.go
index 344f8c7..ef4e08a 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq.go
@@ -17,6 +17,7 @@ type UploadRequest struct {
Wants []plumbing.Hash
Shallows []plumbing.Hash
Depth Depth
+ Filter Filter
}
// Depth values stores the desired depth of the requested packfile: see
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.go b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.go
index c451e23..8b19c0f 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/protocol/packp/ulreq_encode.go
@@ -132,6 +132,17 @@ func (e *ulReqEncoder) encodeDepth() stateFn {
return nil
}
+ return e.encodeFilter
+}
+
+func (e *ulReqEncoder) encodeFilter() stateFn {
+ if filter := e.data.Filter; filter != "" {
+ if err := e.pe.Encodef("filter %s\n", filter); err != nil {
+ e.err = fmt.Errorf("encoding filter %s: %s", filter, err)
+ return nil
+ }
+ }
+
return e.encodeFlush
}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/reference.go b/vendor/github.com/go-git/go-git/v5/plumbing/reference.go
index ddba930..4daa341 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/reference.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/reference.go
@@ -188,7 +188,7 @@ func (r ReferenceName) Validate() error {
isBranch := r.IsBranch()
isTag := r.IsTag()
- for _, part := range parts {
+ for i, part := range parts {
// rule 6
if len(part) == 0 {
return ErrInvalidReferenceName
@@ -205,7 +205,7 @@ func (r ReferenceName) Validate() error {
return ErrInvalidReferenceName
}
- if (isBranch || isTag) && strings.HasPrefix(part, "-") { // branches & tags can't start with -
+ if (isBranch || isTag) && strings.HasPrefix(part, "-") && (i == 2) { // branches & tags can't start with -
return ErrInvalidReferenceName
}
}
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go b/vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go
index b05437f..fae1aa9 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/transport/common.go
@@ -19,6 +19,7 @@ import (
"fmt"
"io"
"net/url"
+ "path/filepath"
"strconv"
"strings"
@@ -295,7 +296,11 @@ func parseFile(endpoint string) (*Endpoint, bool) {
return nil, false
}
- path := endpoint
+ path, err := filepath.Abs(endpoint)
+ if err != nil {
+ return nil, false
+ }
+
return &Endpoint{
Protocol: "file",
Path: path,
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.go b/vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.go
index 38714e2..d921d0a 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/transport/file/client.go
@@ -7,6 +7,7 @@ import (
"io"
"os"
"path/filepath"
+ "runtime"
"strings"
"github.com/go-git/go-git/v5/plumbing/transport"
@@ -95,7 +96,23 @@ func (r *runner) Command(cmd string, ep *transport.Endpoint, auth transport.Auth
}
}
- return &command{cmd: execabs.Command(cmd, ep.Path)}, nil
+ return &command{cmd: execabs.Command(cmd, adjustPathForWindows(ep.Path))}, nil
+}
+
+func isDriveLetter(c byte) bool {
+ return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')
+}
+
+// On Windows, the path that results from a file: URL has a leading slash. This
+// has to be removed if there's a drive letter
+func adjustPathForWindows(p string) string {
+ if runtime.GOOS != "windows" {
+ return p
+ }
+ if len(p) >= 3 && p[0] == '/' && isDriveLetter(p[1]) && p[2] == ':' {
+ return p[1:]
+ }
+ return p
}
type command struct {
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 1c4ceee..120008d 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
@@ -430,11 +430,11 @@ func NewErr(r *http.Response) error {
switch r.StatusCode {
case http.StatusUnauthorized:
- return transport.ErrAuthenticationRequired
+ return fmt.Errorf("%w: %s", transport.ErrAuthenticationRequired, reason)
case http.StatusForbidden:
- return transport.ErrAuthorizationFailed
+ return fmt.Errorf("%w: %s", transport.ErrAuthorizationFailed, reason)
case http.StatusNotFound:
- return transport.ErrRepositoryNotFound
+ return fmt.Errorf("%w: %s", transport.ErrRepositoryNotFound, reason)
}
return plumbing.NewUnexpectedError(&Err{r, reason})
diff --git a/vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.go b/vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.go
index e7e2b07..f03a91c 100644
--- a/vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.go
+++ b/vendor/github.com/go-git/go-git/v5/plumbing/transport/server/loader.go
@@ -40,8 +40,16 @@ func (l *fsLoader) Load(ep *transport.Endpoint) (storer.Storer, error) {
return nil, err
}
- if _, err := fs.Stat("config"); err != nil {
- return nil, transport.ErrRepositoryNotFound
+ var bare bool
+ if _, err := fs.Stat("config"); err == nil {
+ bare = true
+ }
+
+ if !bare {
+ // do not use git.GitDirName due to import cycle
+ if _, err := fs.Stat(".git"); err != nil {
+ return nil, transport.ErrRepositoryNotFound
+ }
}
return filesystem.NewStorage(fs, cache.NewObjectLRUDefault()), nil
diff --git a/vendor/github.com/go-git/go-git/v5/remote.go b/vendor/github.com/go-git/go-git/v5/remote.go
index 7cc0db9..e2c734e 100644
--- a/vendor/github.com/go-git/go-git/v5/remote.go
+++ b/vendor/github.com/go-git/go-git/v5/remote.go
@@ -9,6 +9,7 @@ import (
"time"
"github.com/go-git/go-billy/v5/osfs"
+
"github.com/go-git/go-git/v5/config"
"github.com/go-git/go-git/v5/internal/url"
"github.com/go-git/go-git/v5/plumbing"
@@ -82,7 +83,7 @@ func (r *Remote) String() string {
var fetch, push string
if len(r.c.URLs) > 0 {
fetch = r.c.URLs[0]
- push = r.c.URLs[0]
+ push = r.c.URLs[len(r.c.URLs)-1]
}
return fmt.Sprintf("%s\t%s (fetch)\n%[1]s\t%[3]s (push)", r.c.Name, fetch, push)
@@ -109,8 +110,8 @@ func (r *Remote) PushContext(ctx context.Context, o *PushOptions) (err error) {
return fmt.Errorf("remote names don't match: %s != %s", o.RemoteName, r.c.Name)
}
- if o.RemoteURL == "" {
- o.RemoteURL = r.c.URLs[0]
+ if o.RemoteURL == "" && len(r.c.URLs) > 0 {
+ o.RemoteURL = r.c.URLs[len(r.c.URLs)-1]
}
s, err := newSendPackSession(o.RemoteURL, o.Auth, o.InsecureSkipTLS, o.CABundle, o.ProxyOptions)
@@ -491,7 +492,18 @@ func (r *Remote) fetch(ctx context.Context, o *FetchOptions) (sto storer.Referen
}
if !updated && !updatedPrune {
- return remoteRefs, NoErrAlreadyUpToDate
+ // No references updated, but may have fetched new objects, check if we now have any of our wants
+ for _, hash := range req.Wants {
+ exists, _ := objectExists(r.s, hash)
+ if exists {
+ updated = true
+ break
+ }
+ }
+
+ if !updated {
+ return remoteRefs, NoErrAlreadyUpToDate
+ }
}
return remoteRefs, nil
@@ -878,17 +890,12 @@ func getHavesFromRef(
return nil
}
- // No need to load the commit if we know the remote already
- // has this hash.
- if remoteRefs[h] {
- haves[h] = true
- return nil
- }
-
commit, err := object.GetCommit(s, h)
if err != nil {
- // Ignore the error if this isn't a commit.
- haves[ref.Hash()] = true
+ if !errors.Is(err, plumbing.ErrObjectNotFound) {
+ // Ignore the error if this isn't a commit.
+ haves[ref.Hash()] = true
+ }
return nil
}
diff --git a/vendor/github.com/go-git/go-git/v5/repository.go b/vendor/github.com/go-git/go-git/v5/repository.go
index a57c714..200098e 100644
--- a/vendor/github.com/go-git/go-git/v5/repository.go
+++ b/vendor/github.com/go-git/go-git/v5/repository.go
@@ -956,7 +956,7 @@ func (r *Repository) clone(ctx context.Context, o *CloneOptions) error {
}
if o.RecurseSubmodules != NoRecurseSubmodules {
- if err := w.updateSubmodules(&SubmoduleUpdateOptions{
+ if err := w.updateSubmodules(ctx, &SubmoduleUpdateOptions{
RecurseSubmodules: o.RecurseSubmodules,
Depth: func() int {
if o.ShallowSubmodules {
@@ -1037,7 +1037,7 @@ func (r *Repository) setIsBare(isBare bool) error {
return r.Storer.SetConfig(cfg)
}
-func (r *Repository) updateRemoteConfigIfNeeded(o *CloneOptions, c *config.RemoteConfig, head *plumbing.Reference) error {
+func (r *Repository) updateRemoteConfigIfNeeded(o *CloneOptions, c *config.RemoteConfig, _ *plumbing.Reference) error {
if !o.SingleBranch {
return nil
}
diff --git a/vendor/github.com/go-git/go-git/v5/status.go b/vendor/github.com/go-git/go-git/v5/status.go
index 7f18e02..d14f7e6 100644
--- a/vendor/github.com/go-git/go-git/v5/status.go
+++ b/vendor/github.com/go-git/go-git/v5/status.go
@@ -4,6 +4,9 @@ import (
"bytes"
"fmt"
"path/filepath"
+
+ mindex "github.com/go-git/go-git/v5/utils/merkletrie/index"
+ "github.com/go-git/go-git/v5/utils/merkletrie/noder"
)
// Status represents the current status of a Worktree.
@@ -77,3 +80,69 @@ const (
Copied StatusCode = 'C'
UpdatedButUnmerged StatusCode = 'U'
)
+
+// StatusStrategy defines the different types of strategies when processing
+// the worktree status.
+type StatusStrategy int
+
+const (
+ // TODO: (V6) Review the default status strategy.
+ // TODO: (V6) Review the type used to represent Status, to enable lazy
+ // processing of statuses going direct to the backing filesystem.
+ defaultStatusStrategy = Empty
+
+ // Empty starts its status map from empty. Missing entries for a given
+ // path means that the file is untracked. This causes a known issue (#119)
+ // whereby unmodified files can be incorrectly reported as untracked.
+ //
+ // This can be used when returning the changed state within a modified Worktree.
+ // For example, to check whether the current worktree is clean.
+ Empty StatusStrategy = 0
+ // Preload goes through all existing nodes from the index and add them to the
+ // status map as unmodified. This is currently the most reliable strategy
+ // although it comes at a performance cost in large repositories.
+ //
+ // This method is recommended when fetching the status of unmodified files.
+ // For example, to confirm the status of a specific file that is either
+ // untracked or unmodified.
+ Preload StatusStrategy = 1
+)
+
+func (s StatusStrategy) new(w *Worktree) (Status, error) {
+ switch s {
+ case Preload:
+ return preloadStatus(w)
+ case Empty:
+ return make(Status), nil
+ }
+ return nil, fmt.Errorf("%w: %+v", ErrUnsupportedStatusStrategy, s)
+}
+
+func preloadStatus(w *Worktree) (Status, error) {
+ idx, err := w.r.Storer.Index()
+ if err != nil {
+ return nil, err
+ }
+
+ idxRoot := mindex.NewRootNode(idx)
+ nodes := []noder.Noder{idxRoot}
+
+ status := make(Status)
+ for len(nodes) > 0 {
+ var node noder.Noder
+ node, nodes = nodes[0], nodes[1:]
+ if node.IsDir() {
+ children, err := node.Children()
+ if err != nil {
+ return nil, err
+ }
+ nodes = append(nodes, children...)
+ continue
+ }
+ fs := status.File(node.Name())
+ fs.Worktree = Unmodified
+ fs.Staging = Unmodified
+ }
+
+ return status, nil
+}
diff --git a/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.go b/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.go
index 31c4694..72c9ccf 100644
--- a/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.go
+++ b/vendor/github.com/go-git/go-git/v5/storage/filesystem/dotgit/dotgit.go
@@ -72,6 +72,9 @@ var (
// ErrIsDir is returned when a reference file is attempting to be read,
// but the path specified is a directory.
ErrIsDir = errors.New("reference path is a directory")
+ // ErrEmptyRefFile is returned when a reference file is attempted to be read,
+ // but the file is empty
+ ErrEmptyRefFile = errors.New("ref file is empty")
)
// Options holds configuration for the storage.
@@ -249,7 +252,7 @@ func (d *DotGit) objectPacks() ([]plumbing.Hash, error) {
continue
}
- h := plumbing.NewHash(n[5 : len(n)-5]) //pack-(hash).pack
+ h := plumbing.NewHash(n[5 : len(n)-5]) // pack-(hash).pack
if h.IsZero() {
// Ignore files with badly-formatted names.
continue
@@ -661,18 +664,33 @@ func (d *DotGit) readReferenceFrom(rd io.Reader, name string) (ref *plumbing.Ref
return nil, err
}
+ if len(b) == 0 {
+ return nil, ErrEmptyRefFile
+ }
+
line := strings.TrimSpace(string(b))
return plumbing.NewReferenceFromStrings(name, line), nil
}
+// checkReferenceAndTruncate reads the reference from the given file, or the `pack-refs` file if
+// the file was empty. Then it checks that the old reference matches the stored reference and
+// truncates the file.
func (d *DotGit) checkReferenceAndTruncate(f billy.File, old *plumbing.Reference) error {
if old == nil {
return nil
}
+
ref, err := d.readReferenceFrom(f, old.Name().String())
+ if errors.Is(err, ErrEmptyRefFile) {
+ // This may happen if the reference is being read from a newly created file.
+ // In that case, try getting the reference from the packed refs file.
+ ref, err = d.packedRef(old.Name())
+ }
+
if err != nil {
return err
}
+
if ref.Hash() != old.Hash() {
return storage.ErrReferenceHasChanged
}
@@ -701,16 +719,16 @@ func (d *DotGit) SetRef(r, old *plumbing.Reference) error {
// Symbolic references are resolved and included in the output.
func (d *DotGit) Refs() ([]*plumbing.Reference, error) {
var refs []*plumbing.Reference
- var seen = make(map[plumbing.ReferenceName]bool)
- if err := d.addRefsFromRefDir(&refs, seen); err != nil {
+ seen := make(map[plumbing.ReferenceName]bool)
+ if err := d.addRefFromHEAD(&refs); err != nil {
return nil, err
}
- if err := d.addRefsFromPackedRefs(&refs, seen); err != nil {
+ if err := d.addRefsFromRefDir(&refs, seen); err != nil {
return nil, err
}
- if err := d.addRefFromHEAD(&refs); err != nil {
+ if err := d.addRefsFromPackedRefs(&refs, seen); err != nil {
return nil, err
}
@@ -815,7 +833,8 @@ func (d *DotGit) addRefsFromPackedRefsFile(refs *[]*plumbing.Reference, f billy.
}
func (d *DotGit) openAndLockPackedRefs(doCreate bool) (
- pr billy.File, err error) {
+ pr billy.File, err error,
+) {
var f billy.File
defer func() {
if err != nil && f != nil {
@@ -1020,7 +1039,7 @@ func (d *DotGit) readReferenceFile(path, name string) (ref *plumbing.Reference,
func (d *DotGit) CountLooseRefs() (int, error) {
var refs []*plumbing.Reference
- var seen = make(map[plumbing.ReferenceName]bool)
+ seen := make(map[plumbing.ReferenceName]bool)
if err := d.addRefsFromRefDir(&refs, seen); err != nil {
return 0, err
}
diff --git a/vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go b/vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go
index a19176f..a86ef3e 100644
--- a/vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go
+++ b/vendor/github.com/go-git/go-git/v5/storage/filesystem/index.go
@@ -48,7 +48,7 @@ func (s *IndexStorage) Index() (i *index.Index, err error) {
defer ioutil.CheckClose(f, &err)
- d := index.NewDecoder(bufio.NewReader(f))
+ d := index.NewDecoder(f)
err = d.Decode(idx)
return idx, err
}
diff --git a/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go b/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go
index e812fe9..91b4ace 100644
--- a/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go
+++ b/vendor/github.com/go-git/go-git/v5/storage/filesystem/object.go
@@ -431,13 +431,13 @@ func (s *ObjectStorage) getFromUnpacked(h plumbing.Hash) (obj plumbing.EncodedOb
defer ioutil.CheckClose(w, &err)
- s.objectCache.Put(obj)
-
bufp := copyBufferPool.Get().(*[]byte)
buf := *bufp
_, err = io.CopyBuffer(w, r, buf)
copyBufferPool.Put(bufp)
+ s.objectCache.Put(obj)
+
return obj, err
}
diff --git a/vendor/github.com/go-git/go-git/v5/submodule.go b/vendor/github.com/go-git/go-git/v5/submodule.go
index 84f020d..afabb6a 100644
--- a/vendor/github.com/go-git/go-git/v5/submodule.go
+++ b/vendor/github.com/go-git/go-git/v5/submodule.go
@@ -214,10 +214,10 @@ func (s *Submodule) update(ctx context.Context, o *SubmoduleUpdateOptions, force
return err
}
- return s.doRecursiveUpdate(r, o)
+ return s.doRecursiveUpdate(ctx, r, o)
}
-func (s *Submodule) doRecursiveUpdate(r *Repository, o *SubmoduleUpdateOptions) error {
+func (s *Submodule) doRecursiveUpdate(ctx context.Context, r *Repository, o *SubmoduleUpdateOptions) error {
if o.RecurseSubmodules == NoRecurseSubmodules {
return nil
}
@@ -236,7 +236,7 @@ func (s *Submodule) doRecursiveUpdate(r *Repository, o *SubmoduleUpdateOptions)
*new = *o
new.RecurseSubmodules--
- return l.Update(new)
+ return l.UpdateContext(ctx, new)
}
func (s *Submodule) fetchAndCheckout(
diff --git a/vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go b/vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go
index cc6dc89..450feb4 100644
--- a/vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go
+++ b/vendor/github.com/go-git/go-git/v5/utils/merkletrie/change.go
@@ -1,12 +1,17 @@
package merkletrie
import (
+ "errors"
"fmt"
"io"
"github.com/go-git/go-git/v5/utils/merkletrie/noder"
)
+var (
+ ErrEmptyFileName = errors.New("empty filename in tree entry")
+)
+
// Action values represent the kind of things a Change can represent:
// insertion, deletions or modifications of files.
type Action int
@@ -121,6 +126,10 @@ func (l *Changes) AddRecursiveDelete(root noder.Path) error {
type noderToChangeFn func(noder.Path) Change // NewInsert or NewDelete
func (l *Changes) addRecursive(root noder.Path, ctor noderToChangeFn) error {
+ if root.String() == "" {
+ return ErrEmptyFileName
+ }
+
if !root.IsDir() {
l.Add(ctor(root))
return nil
diff --git a/vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go b/vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go
index 8090942..4ef2d99 100644
--- a/vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go
+++ b/vendor/github.com/go-git/go-git/v5/utils/merkletrie/difftree.go
@@ -11,7 +11,7 @@ package merkletrie
// corresponding changes and move the iterators further over both
// trees.
//
-// The table bellow show all the possible comparison results, along
+// The table below shows all the possible comparison results, along
// with what changes should we produce and how to advance the
// iterators.
//
diff --git a/vendor/github.com/go-git/go-git/v5/utils/sync/bufio.go b/vendor/github.com/go-git/go-git/v5/utils/sync/bufio.go
index 5009ea8..42f60f7 100644
--- a/vendor/github.com/go-git/go-git/v5/utils/sync/bufio.go
+++ b/vendor/github.com/go-git/go-git/v5/utils/sync/bufio.go
@@ -13,7 +13,7 @@ var bufioReader = sync.Pool{
}
// GetBufioReader returns a *bufio.Reader that is managed by a sync.Pool.
-// Returns a bufio.Reader that is resetted with reader and ready for use.
+// Returns a bufio.Reader that is reset with reader and ready for use.
//
// After use, the *bufio.Reader should be put back into the sync.Pool
// by calling PutBufioReader.
diff --git a/vendor/github.com/go-git/go-git/v5/utils/sync/bytes.go b/vendor/github.com/go-git/go-git/v5/utils/sync/bytes.go
index dd06fc0..c67b978 100644
--- a/vendor/github.com/go-git/go-git/v5/utils/sync/bytes.go
+++ b/vendor/github.com/go-git/go-git/v5/utils/sync/bytes.go
@@ -35,7 +35,7 @@ func PutByteSlice(buf *[]byte) {
}
// GetBytesBuffer returns a *bytes.Buffer that is managed by a sync.Pool.
-// Returns a buffer that is resetted and ready for use.
+// Returns a buffer that is reset and ready for use.
//
// After use, the *bytes.Buffer should be put back into the sync.Pool
// by calling PutBytesBuffer.
diff --git a/vendor/github.com/go-git/go-git/v5/utils/sync/zlib.go b/vendor/github.com/go-git/go-git/v5/utils/sync/zlib.go
index c613885..edf674d 100644
--- a/vendor/github.com/go-git/go-git/v5/utils/sync/zlib.go
+++ b/vendor/github.com/go-git/go-git/v5/utils/sync/zlib.go
@@ -35,7 +35,7 @@ type ZLibReader struct {
}
// GetZlibReader returns a ZLibReader that is managed by a sync.Pool.
-// Returns a ZLibReader that is resetted using a dictionary that is
+// Returns a ZLibReader that is reset using a dictionary that is
// also managed by a sync.Pool.
//
// After use, the ZLibReader should be put back into the sync.Pool
@@ -58,7 +58,7 @@ func PutZlibReader(z ZLibReader) {
}
// GetZlibWriter returns a *zlib.Writer that is managed by a sync.Pool.
-// Returns a writer that is resetted with w and ready for use.
+// Returns a writer that is reset with w and ready for use.
//
// After use, the *zlib.Writer should be put back into the sync.Pool
// by calling PutZlibWriter.
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 ab11d42..8dfa50b 100644
--- a/vendor/github.com/go-git/go-git/v5/worktree.go
+++ b/vendor/github.com/go-git/go-git/v5/worktree.go
@@ -25,11 +25,12 @@ import (
)
var (
- ErrWorktreeNotClean = errors.New("worktree is not clean")
- ErrSubmoduleNotFound = errors.New("submodule not found")
- ErrUnstagedChanges = errors.New("worktree contains unstaged changes")
- ErrGitModulesSymlink = errors.New(gitmodulesFile + " is a symlink")
- ErrNonFastForwardUpdate = errors.New("non-fast-forward update")
+ ErrWorktreeNotClean = errors.New("worktree is not clean")
+ ErrSubmoduleNotFound = errors.New("submodule not found")
+ ErrUnstagedChanges = errors.New("worktree contains unstaged changes")
+ ErrGitModulesSymlink = errors.New(gitmodulesFile + " is a symlink")
+ ErrNonFastForwardUpdate = errors.New("non-fast-forward update")
+ ErrRestoreWorktreeOnlyNotSupported = errors.New("worktree only is not supported")
)
// Worktree represents a git worktree.
@@ -139,7 +140,7 @@ func (w *Worktree) PullContext(ctx context.Context, o *PullOptions) error {
}
if o.RecurseSubmodules != NoRecurseSubmodules {
- return w.updateSubmodules(&SubmoduleUpdateOptions{
+ return w.updateSubmodules(ctx, &SubmoduleUpdateOptions{
RecurseSubmodules: o.RecurseSubmodules,
Auth: o.Auth,
})
@@ -148,13 +149,13 @@ func (w *Worktree) PullContext(ctx context.Context, o *PullOptions) error {
return nil
}
-func (w *Worktree) updateSubmodules(o *SubmoduleUpdateOptions) error {
+func (w *Worktree) updateSubmodules(ctx context.Context, o *SubmoduleUpdateOptions) error {
s, err := w.Submodules()
if err != nil {
return err
}
o.Init = true
- return s.Update(o)
+ return s.UpdateContext(ctx, o)
}
// Checkout switch branches or restore working tree files.
@@ -307,13 +308,13 @@ func (w *Worktree) ResetSparsely(opts *ResetOptions, dirs []string) error {
}
if opts.Mode == MixedReset || opts.Mode == MergeReset || opts.Mode == HardReset {
- if err := w.resetIndex(t, dirs); err != nil {
+ if err := w.resetIndex(t, dirs, opts.Files); err != nil {
return err
}
}
if opts.Mode == MergeReset || opts.Mode == HardReset {
- if err := w.resetWorktree(t); err != nil {
+ if err := w.resetWorktree(t, opts.Files); err != nil {
return err
}
}
@@ -321,20 +322,52 @@ func (w *Worktree) ResetSparsely(opts *ResetOptions, dirs []string) error {
return nil
}
+// Restore restores specified files in the working tree or stage with contents from
+// a restore source. If a path is tracked but does not exist in the restore,
+// source, it will be removed to match the source.
+//
+// If Staged and Worktree are true, then the restore source will be the index.
+// If only Staged is true, then the restore source will be HEAD.
+// If only Worktree is true or neither Staged nor Worktree are true, will
+// result in ErrRestoreWorktreeOnlyNotSupported because restoring the working
+// tree while leaving the stage untouched is not currently supported.
+//
+// Restore with no files specified will return ErrNoRestorePaths.
+func (w *Worktree) Restore(o *RestoreOptions) error {
+ if err := o.Validate(); err != nil {
+ return err
+ }
+
+ if o.Staged {
+ opts := &ResetOptions{
+ Files: o.Files,
+ }
+
+ if o.Worktree {
+ // If we are doing both Worktree and Staging then it is a hard reset
+ opts.Mode = HardReset
+ } else {
+ // If we are doing just staging then it is a mixed reset
+ opts.Mode = MixedReset
+ }
+
+ return w.Reset(opts)
+ }
+
+ return ErrRestoreWorktreeOnlyNotSupported
+}
+
// Reset the worktree to a specified state.
func (w *Worktree) Reset(opts *ResetOptions) error {
return w.ResetSparsely(opts, nil)
}
-func (w *Worktree) resetIndex(t *object.Tree, dirs []string) error {
+func (w *Worktree) resetIndex(t *object.Tree, dirs []string, files []string) error {
idx, err := w.r.Storer.Index()
- if len(dirs) > 0 {
- idx.SkipUnless(dirs)
- }
-
if err != nil {
return err
}
+
b := newIndexBuilder(idx)
changes, err := w.diffTreeWithStaging(t, true)
@@ -362,6 +395,13 @@ func (w *Worktree) resetIndex(t *object.Tree, dirs []string) error {
name = ch.From.String()
}
+ if len(files) > 0 {
+ contains := inFiles(files, name)
+ if !contains {
+ continue
+ }
+ }
+
b.Remove(name)
if e == nil {
continue
@@ -376,10 +416,25 @@ func (w *Worktree) resetIndex(t *object.Tree, dirs []string) error {
}
b.Write(idx)
+
+ if len(dirs) > 0 {
+ idx.SkipUnless(dirs)
+ }
+
return w.r.Storer.SetIndex(idx)
}
-func (w *Worktree) resetWorktree(t *object.Tree) error {
+func inFiles(files []string, v string) bool {
+ for _, s := range files {
+ if s == v {
+ return true
+ }
+ }
+
+ return false
+}
+
+func (w *Worktree) resetWorktree(t *object.Tree, files []string) error {
changes, err := w.diffStagingWithWorktree(true, false)
if err != nil {
return err
@@ -395,6 +450,25 @@ func (w *Worktree) resetWorktree(t *object.Tree) error {
if err := w.validChange(ch); err != nil {
return err
}
+
+ if len(files) > 0 {
+ file := ""
+ if ch.From != nil {
+ file = ch.From.String()
+ } else if ch.To != nil {
+ file = ch.To.String()
+ }
+
+ if file == "" {
+ continue
+ }
+
+ contains := inFiles(files, file)
+ if !contains {
+ continue
+ }
+ }
+
if err := w.checkoutChange(ch, t, b); err != nil {
return err
}
@@ -642,7 +716,7 @@ func (w *Worktree) checkoutChangeRegularFile(name string,
return err
}
- return w.addIndexFromFile(name, e.Hash, idx)
+ return w.addIndexFromFile(name, e.Hash, f.Mode, idx)
}
return nil
@@ -725,18 +799,13 @@ func (w *Worktree) addIndexFromTreeEntry(name string, f *object.TreeEntry, idx *
return nil
}
-func (w *Worktree) addIndexFromFile(name string, h plumbing.Hash, idx *indexBuilder) error {
+func (w *Worktree) addIndexFromFile(name string, h plumbing.Hash, mode filemode.FileMode, idx *indexBuilder) error {
idx.Remove(name)
fi, err := w.Filesystem.Lstat(name)
if err != nil {
return err
}
- mode, err := filemode.NewFromOSFileMode(fi.Mode())
- if err != nil {
- return err
- }
-
e := &index.Entry{
Hash: h,
Name: name,
@@ -1058,7 +1127,7 @@ func rmFileAndDirsIfEmpty(fs billy.Filesystem, name string) error {
dir := filepath.Dir(name)
for {
removed, err := removeDirIfEmpty(fs, dir)
- if err != nil {
+ if err != nil && !os.IsNotExist(err) {
return err
}
diff --git a/vendor/github.com/go-git/go-git/v5/worktree_commit.go b/vendor/github.com/go-git/go-git/v5/worktree_commit.go
index f62054b..9b1988a 100644
--- a/vendor/github.com/go-git/go-git/v5/worktree_commit.go
+++ b/vendor/github.com/go-git/go-git/v5/worktree_commit.go
@@ -5,6 +5,7 @@ import (
"errors"
"io"
"path"
+ "regexp"
"sort"
"strings"
@@ -23,6 +24,10 @@ var (
// ErrEmptyCommit occurs when a commit is attempted using a clean
// working tree, with no changes to be committed.
ErrEmptyCommit = errors.New("cannot create empty commit: clean working tree")
+
+ // characters to be removed from user name and/or email before using them to build a commit object
+ // See https://git-scm.com/docs/git-commit#_commit_information
+ invalidCharactersRe = regexp.MustCompile(`[<>\n]`)
)
// Commit stores the current contents of the index in a new commit along with
@@ -38,8 +43,6 @@ func (w *Worktree) Commit(msg string, opts *CommitOptions) (plumbing.Hash, error
}
}
- var treeHash plumbing.Hash
-
if opts.Amend {
head, err := w.r.Head()
if err != nil {
@@ -61,16 +64,34 @@ func (w *Worktree) Commit(msg string, opts *CommitOptions) (plumbing.Hash, error
return plumbing.ZeroHash, err
}
+ // First handle the case of the first commit in the repository being empty.
+ if len(opts.Parents) == 0 && len(idx.Entries) == 0 && !opts.AllowEmptyCommits {
+ return plumbing.ZeroHash, ErrEmptyCommit
+ }
+
h := &buildTreeHelper{
fs: w.Filesystem,
s: w.r.Storer,
}
- treeHash, err = h.BuildTree(idx, opts)
+ treeHash, err := h.BuildTree(idx, opts)
if err != nil {
return plumbing.ZeroHash, err
}
+ previousTree := plumbing.ZeroHash
+ if len(opts.Parents) > 0 {
+ parentCommit, err := w.r.CommitObject(opts.Parents[0])
+ if err != nil {
+ return plumbing.ZeroHash, err
+ }
+ previousTree = parentCommit.TreeHash
+ }
+
+ if treeHash == previousTree && !opts.AllowEmptyCommits {
+ return plumbing.ZeroHash, ErrEmptyCommit
+ }
+
commit, err := w.buildCommitObject(msg, opts, treeHash)
if err != nil {
return plumbing.ZeroHash, err
@@ -121,8 +142,8 @@ func (w *Worktree) updateHEAD(commit plumbing.Hash) error {
func (w *Worktree) buildCommitObject(msg string, opts *CommitOptions, tree plumbing.Hash) (plumbing.Hash, error) {
commit := &object.Commit{
- Author: *opts.Author,
- Committer: *opts.Committer,
+ Author: w.sanitize(*opts.Author),
+ Committer: w.sanitize(*opts.Committer),
Message: msg,
TreeHash: tree,
ParentHashes: opts.Parents,
@@ -148,6 +169,14 @@ func (w *Worktree) buildCommitObject(msg string, opts *CommitOptions, tree plumb
return w.r.Storer.SetEncodedObject(obj)
}
+func (w *Worktree) sanitize(signature object.Signature) object.Signature {
+ return object.Signature{
+ Name: invalidCharactersRe.ReplaceAllString(signature.Name, ""),
+ Email: invalidCharactersRe.ReplaceAllString(signature.Email, ""),
+ When: signature.When,
+ }
+}
+
type gpgSigner struct {
key *openpgp.Entity
cfg *packet.Config
@@ -175,10 +204,6 @@ type buildTreeHelper struct {
// BuildTree builds the tree objects and push its to the storer, the hash
// of the root tree is returned.
func (h *buildTreeHelper) BuildTree(idx *index.Index, opts *CommitOptions) (plumbing.Hash, error) {
- if len(idx.Entries) == 0 && (opts == nil || !opts.AllowEmptyCommits) {
- return plumbing.ZeroHash, ErrEmptyCommit
- }
-
const rootNode = ""
h.trees = map[string]*object.Tree{rootNode: {}}
h.entries = map[string]*object.TreeEntry{}
diff --git a/vendor/github.com/go-git/go-git/v5/worktree_linux.go b/vendor/github.com/go-git/go-git/v5/worktree_linux.go
index 6fcace2..f6b85fe 100644
--- a/vendor/github.com/go-git/go-git/v5/worktree_linux.go
+++ b/vendor/github.com/go-git/go-git/v5/worktree_linux.go
@@ -1,3 +1,4 @@
+//go:build linux
// +build linux
package git
@@ -21,6 +22,6 @@ func init() {
}
}
-func isSymlinkWindowsNonAdmin(err error) bool {
+func isSymlinkWindowsNonAdmin(_ error) bool {
return false
}
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 dd9b243..6e72db9 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
@@ -29,10 +29,23 @@ var (
// ErrGlobNoMatches in an AddGlob if the glob pattern does not match any
// files in the worktree.
ErrGlobNoMatches = errors.New("glob pattern did not match any files")
+ // ErrUnsupportedStatusStrategy occurs when an invalid StatusStrategy is used
+ // when processing the Worktree status.
+ ErrUnsupportedStatusStrategy = errors.New("unsupported status strategy")
)
// Status returns the working tree status.
func (w *Worktree) Status() (Status, error) {
+ return w.StatusWithOptions(StatusOptions{Strategy: defaultStatusStrategy})
+}
+
+// StatusOptions defines the options for Worktree.StatusWithOptions().
+type StatusOptions struct {
+ Strategy StatusStrategy
+}
+
+// StatusWithOptions returns the working tree status.
+func (w *Worktree) StatusWithOptions(o StatusOptions) (Status, error) {
var hash plumbing.Hash
ref, err := w.r.Head()
@@ -44,11 +57,14 @@ func (w *Worktree) Status() (Status, error) {
hash = ref.Hash()
}
- return w.status(hash)
+ return w.status(o.Strategy, hash)
}
-func (w *Worktree) status(commit plumbing.Hash) (Status, error) {
- s := make(Status)
+func (w *Worktree) status(ss StatusStrategy, commit plumbing.Hash) (Status, error) {
+ s, err := ss.new(w)
+ if err != nil {
+ return nil, err
+ }
left, err := w.diffCommitWithStaging(commit, false)
if err != nil {
@@ -488,7 +504,7 @@ func (w *Worktree) copyFileToStorage(path string) (hash plumbing.Hash, err error
return w.r.Storer.SetEncodedObject(obj)
}
-func (w *Worktree) fillEncodedObjectFromFile(dst io.Writer, path string, fi os.FileInfo) (err error) {
+func (w *Worktree) fillEncodedObjectFromFile(dst io.Writer, path string, _ os.FileInfo) (err error) {
src, err := w.Filesystem.Open(path)
if err != nil {
return err
@@ -503,7 +519,7 @@ func (w *Worktree) fillEncodedObjectFromFile(dst io.Writer, path string, fi os.F
return err
}
-func (w *Worktree) fillEncodedObjectFromSymlink(dst io.Writer, path string, fi os.FileInfo) error {
+func (w *Worktree) fillEncodedObjectFromSymlink(dst io.Writer, path string, _ os.FileInfo) error {
target, err := w.Filesystem.Readlink(path)
if err != nil {
return err
@@ -543,9 +559,11 @@ func (w *Worktree) doUpdateFileToIndex(e *index.Entry, filename string, h plumbi
return err
}
- if e.Mode.IsRegular() {
- e.Size = uint32(info.Size())
- }
+ // The entry size must always reflect the current state, otherwise
+ // it will cause go-git's Worktree.Status() to divert from "git status".
+ // The size of a symlink is the length of the path to the target.
+ // The size of Regular and Executable files is the size of the files.
+ e.Size = uint32(info.Size())
fillSystemInfo(e, info.Sys())
return nil
diff --git a/vendor/github.com/mmcloughlin/avo/LICENSE b/vendor/github.com/mmcloughlin/avo/LICENSE
new file mode 100644
index 0000000..c986d80
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/LICENSE
@@ -0,0 +1,29 @@
+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
new file mode 100644
index 0000000..301c9f5
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/attr/attr.go
@@ -0,0 +1,45 @@
+// 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
new file mode 100644
index 0000000..7e3547f
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/attr/textflag.h
@@ -0,0 +1,39 @@
+// 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
new file mode 100644
index 0000000..4c7163a
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/attr/ztextflag.go
@@ -0,0 +1,90 @@
+// 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
new file mode 100644
index 0000000..1a9870b
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/attr.go
@@ -0,0 +1,18 @@
+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
new file mode 100644
index 0000000..8a4a379
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/cli.go
@@ -0,0 +1,171 @@
+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
new file mode 100644
index 0000000..8043130
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/context.go
@@ -0,0 +1,224 @@
+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
new file mode 100644
index 0000000..8b9a604
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..d6f3be6
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/error.go
@@ -0,0 +1,91 @@
+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
new file mode 100644
index 0000000..dae6795
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/global.go
@@ -0,0 +1,163 @@
+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
new file mode 100644
index 0000000..009811d
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/pseudo.go
@@ -0,0 +1,69 @@
+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
new file mode 100644
index 0000000..2d117f1
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/zinstructions.go
@@ -0,0 +1,86852 @@
+// 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
new file mode 100644
index 0000000..ff97308
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/build/zmov.go
@@ -0,0 +1,294 @@
+// 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
new file mode 100644
index 0000000..9f9ebb5
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/buildtags/buildtags.go
@@ -0,0 +1,312 @@
+// 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
new file mode 100644
index 0000000..9258312
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/buildtags/syntax.go
@@ -0,0 +1,46 @@
+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
new file mode 100644
index 0000000..e9d393d
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go116.go
@@ -0,0 +1,8 @@
+//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
new file mode 100644
index 0000000..b624dee
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go117.go
@@ -0,0 +1,8 @@
+//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
new file mode 100644
index 0000000..d372f86
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/buildtags/syntax_go118.go
@@ -0,0 +1,8 @@
+//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
new file mode 100644
index 0000000..fe0c973
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/gotypes/components.go
@@ -0,0 +1,253 @@
+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
new file mode 100644
index 0000000..fa8f078
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/gotypes/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..a96b056
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/gotypes/signature.go
@@ -0,0 +1,193 @@
+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
new file mode 100644
index 0000000..a29df6e
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/internal/prnt/printer.go
@@ -0,0 +1,101 @@
+// 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
new file mode 100644
index 0000000..1d327d9
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/internal/stack/stack.go
@@ -0,0 +1,73 @@
+// 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
new file mode 100644
index 0000000..de02f46
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/ir/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..871d488
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/ir/ir.go
@@ -0,0 +1,365 @@
+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
new file mode 100644
index 0000000..ba1760b
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/operand/checks.go
@@ -0,0 +1,282 @@
+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
new file mode 100644
index 0000000..10d57c5
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/operand/const.go
@@ -0,0 +1,64 @@
+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
new file mode 100644
index 0000000..51c44df
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/operand/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..878425e
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/operand/types.go
@@ -0,0 +1,151 @@
+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
new file mode 100644
index 0000000..14b128a
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/operand/zconst.go
@@ -0,0 +1,75 @@
+// 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
new file mode 100644
index 0000000..39ada55
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/alloc.go
@@ -0,0 +1,213 @@
+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
new file mode 100644
index 0000000..d5f6ea4
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/cfg.go
@@ -0,0 +1,81 @@
+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
new file mode 100644
index 0000000..d91250f
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/cleanup.go
@@ -0,0 +1,123 @@
+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
new file mode 100644
index 0000000..951834d
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/isa.go
@@ -0,0 +1,31 @@
+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
new file mode 100644
index 0000000..4f36b8b
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/pass.go
@@ -0,0 +1,101 @@
+// 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
new file mode 100644
index 0000000..6c19eb8
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/reg.go
@@ -0,0 +1,223 @@
+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
new file mode 100644
index 0000000..35a848b
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/textflag.go
@@ -0,0 +1,42 @@
+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
new file mode 100644
index 0000000..1e7b368
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/pass/verify.go
@@ -0,0 +1,32 @@
+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
new file mode 100644
index 0000000..23f5b2f
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/printer/goasm.go
@@ -0,0 +1,192 @@
+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
new file mode 100644
index 0000000..b562c74
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/printer/printer.go
@@ -0,0 +1,98 @@
+// 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
new file mode 100644
index 0000000..1fd9ddc
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/printer/stubs.go
@@ -0,0 +1,61 @@
+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
new file mode 100644
index 0000000..d1a744d
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/reg/collection.go
@@ -0,0 +1,57 @@
+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
new file mode 100644
index 0000000..1c0aee3
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/reg/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..2cf8814
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/reg/set.go
@@ -0,0 +1,112 @@
+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
new file mode 100644
index 0000000..9eacdf9
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/reg/types.go
@@ -0,0 +1,305 @@
+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
new file mode 100644
index 0000000..ee7d1c7
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/reg/x86.go
@@ -0,0 +1,383 @@
+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
new file mode 100644
index 0000000..3a47886
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/src/src.go
@@ -0,0 +1,62 @@
+// 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
new file mode 100644
index 0000000..6e4c8ee
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/x86/doc.go
@@ -0,0 +1,2 @@
+// 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
new file mode 100644
index 0000000..c2e667a
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/x86/gen.go
@@ -0,0 +1,5 @@
+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
new file mode 100644
index 0000000..677c569
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/x86/optab.go
@@ -0,0 +1,130 @@
+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
new file mode 100644
index 0000000..3d2debc
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/x86/zctors.go
@@ -0,0 +1,38615 @@
+// 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
new file mode 100644
index 0000000..ff6108b
--- /dev/null
+++ b/vendor/github.com/mmcloughlin/avo/x86/zoptab.go
@@ -0,0 +1,16385 @@
+// 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/pjbgf/sha1cd/Dockerfile.arm b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm
index 9976129..dfcfac3 100644
--- a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm
+++ b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm
@@ -1,4 +1,4 @@
-FROM golang:1.20@sha256:2edf6aab2d57644f3fe7407132a0d1770846867465a39c2083770cf62734b05d
+FROM golang:1.23@sha256:a7f2fc9834049c1f5df787690026a53738e55fc097cd8a4a93faa3e06c67ee32
ENV GOOS=linux
ENV GOARCH=arm
@@ -10,7 +10,6 @@ ENV PKG_CONFIG_PATH=/usr/lib/arm-linux-gnueabihf/pkgconfig
RUN dpkg --add-architecture armhf \
&& apt update \
&& apt install -y --no-install-recommends \
- upx \
gcc-arm-linux-gnueabihf \
libc6-dev-armhf-cross \
pkg-config \
diff --git a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64 b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64
index 66bd094..a2c74b9 100644
--- a/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64
+++ b/vendor/github.com/pjbgf/sha1cd/Dockerfile.arm64
@@ -1,4 +1,4 @@
-FROM golang:1.20@sha256:2edf6aab2d57644f3fe7407132a0d1770846867465a39c2083770cf62734b05d
+FROM golang:1.23@sha256:a7f2fc9834049c1f5df787690026a53738e55fc097cd8a4a93faa3e06c67ee32
ENV GOOS=linux
ENV GOARCH=arm64
diff --git a/vendor/github.com/pjbgf/sha1cd/LICENSE b/vendor/github.com/pjbgf/sha1cd/LICENSE
index 261eeb9..c8ff622 100644
--- a/vendor/github.com/pjbgf/sha1cd/LICENSE
+++ b/vendor/github.com/pjbgf/sha1cd/LICENSE
@@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.
- Copyright [yyyy] [name of copyright owner]
+ Copyright 2023 pjbgf
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/pjbgf/sha1cd/Makefile b/vendor/github.com/pjbgf/sha1cd/Makefile
index b24f2cb..e591308 100644
--- a/vendor/github.com/pjbgf/sha1cd/Makefile
+++ b/vendor/github.com/pjbgf/sha1cd/Makefile
@@ -35,6 +35,9 @@ 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
+
verify: generate
git diff --exit-code
go vet ./...
diff --git a/vendor/github.com/pjbgf/sha1cd/sha1cd.go b/vendor/github.com/pjbgf/sha1cd/sha1cd.go
index a69e480..17f6f84 100644
--- a/vendor/github.com/pjbgf/sha1cd/sha1cd.go
+++ b/vendor/github.com/pjbgf/sha1cd/sha1cd.go
@@ -17,6 +17,7 @@ import (
"errors"
"hash"
+ _ "github.com/mmcloughlin/avo/build"
shared "github.com/pjbgf/sha1cd/internal"
)
diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.go b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.go
new file mode 100644
index 0000000..09159bb
--- /dev/null
+++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.go
@@ -0,0 +1,14 @@
+//go:build !noasm && gc && amd64
+// +build !noasm,gc,amd64
+
+package ubc
+
+func CalculateDvMaskAMD64(W [80]uint32) uint32
+
+// Check takes as input an expanded message block and verifies the unavoidable bitconditions
+// for all listed DVs. It returns a dvmask where each bit belonging to a DV is set if all
+// unavoidable bitconditions for that DV have been met.
+// Thus, one needs to do the recompression check for each DV that has its bit set.
+func CalculateDvMask(W [80]uint32) uint32 {
+ return CalculateDvMaskAMD64(W)
+}
diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s
new file mode 100644
index 0000000..0c0f4e4
--- /dev/null
+++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_amd64.s
@@ -0,0 +1,1898 @@
+// Code generated by command: go run ubc_amd64_asm.go -out ubc_amd64.s. DO NOT EDIT.
+
+//go:build !noasm && gc && amd64
+// +build !noasm,gc,amd64
+
+#include "textflag.h"
+
+// func CalculateDvMaskAMD64(W [80]uint32) uint32
+TEXT ·CalculateDvMaskAMD64(SB), NOSPLIT, $0-324
+ MOVL $0xffffffff, AX
+
+ // (((((W[44] ^ W[45]) >> 29) & 1) - 1) | ^(DV_I_48_0_bit | DV_I_51_0_bit | DV_I_52_0_bit | DV_II_45_0_bit | DV_II_46_0_bit | DV_II_50_0_bit | DV_II_51_0_bit))
+ MOVL W_44+176(FP), CX
+ MOVL W_45+180(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xfd7c5f7f, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[49] ^ W[50]) >> 29) & 1) - 1) | ^(DV_I_46_0_bit | DV_II_45_0_bit | DV_II_50_0_bit | DV_II_51_0_bit | DV_II_55_0_bit | DV_II_56_0_bit))
+ MOVL W_49+196(FP), CX
+ MOVL W_50+200(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x3d7efff7, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[48] ^ W[49]) >> 29) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_52_0_bit | DV_II_49_0_bit | DV_II_50_0_bit | DV_II_54_0_bit | DV_II_55_0_bit))
+ MOVL W_48+192(FP), CX
+ MOVL W_49+196(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x9f5f7ffb, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[47] ^ (W[50] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_51_0_bit | DV_II_56_0_bit))
+ MOVL W_47+188(FP), CX
+ MOVL W_50+200(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0x7dfedddf, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[47] ^ W[48]) >> 29) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_51_0_bit | DV_II_48_0_bit | DV_II_49_0_bit | DV_II_53_0_bit | DV_II_54_0_bit))
+ MOVL W_47+188(FP), CX
+ MOVL W_48+192(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xcfcfdffd, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[46] >> 4) ^ (W[49] >> 29)) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit | DV_II_50_0_bit | DV_II_55_0_bit))
+ MOVL W_46+184(FP), CX
+ SHRL $0x04, CX
+ MOVL W_49+196(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xbf7f7777, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[46] ^ W[47]) >> 29) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_50_0_bit | DV_II_47_0_bit | DV_II_48_0_bit | DV_II_52_0_bit | DV_II_53_0_bit))
+ MOVL W_46+184(FP), CX
+ MOVL W_47+188(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xe7e7f7fe, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[45] >> 4) ^ (W[48] >> 29)) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit | DV_II_49_0_bit | DV_II_54_0_bit))
+ MOVL W_45+180(FP), CX
+ SHRL $0x04, CX
+ MOVL W_48+192(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xdfdfdddb, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[45] ^ W[46]) >> 29) & 1) - 1) | ^(DV_I_49_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_47_0_bit | DV_II_51_0_bit | DV_II_52_0_bit))
+ MOVL W_45+180(FP), CX
+ MOVL W_46+184(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xf5f57dff, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[44] >> 4) ^ (W[47] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit | DV_II_48_0_bit | DV_II_53_0_bit))
+ MOVL W_44+176(FP), CX
+ SHRL $0x04, CX
+ MOVL W_47+188(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xefeff775, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[43] >> 4) ^ (W[46] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit | DV_II_47_0_bit | DV_II_52_0_bit))
+ MOVL W_43+172(FP), CX
+ SHRL $0x04, CX
+ MOVL W_46+184(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xf7f7fdda, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[43] ^ W[44]) >> 29) & 1) - 1) | ^(DV_I_47_0_bit | DV_I_50_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_49_0_bit | DV_II_50_0_bit))
+ MOVL W_43+172(FP), CX
+ MOVL W_44+176(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xff5ed7df, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[42] >> 4) ^ (W[45] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_51_0_bit))
+ MOVL W_42+168(FP), CX
+ SHRL $0x04, CX
+ MOVL W_45+180(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xfdfd7f75, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[41] >> 4) ^ (W[44] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_50_0_bit))
+ MOVL W_41+164(FP), CX
+ SHRL $0x04, CX
+ MOVL W_44+176(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xff7edfda, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[40] ^ W[41]) >> 29) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_47_0_bit | DV_I_48_0_bit | DV_II_46_0_bit | DV_II_47_0_bit | DV_II_56_0_bit))
+ MOVL W_40+160(FP), CX
+ MOVL W_41+164(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x7ff5ff5d, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[54] ^ W[55]) >> 29) & 1) - 1) | ^(DV_I_51_0_bit | DV_II_47_0_bit | DV_II_50_0_bit | DV_II_55_0_bit | DV_II_56_0_bit))
+ MOVL W_54+216(FP), CX
+ MOVL W_55+220(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x3f77dfff, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[53] ^ W[54]) >> 29) & 1) - 1) | ^(DV_I_50_0_bit | DV_II_46_0_bit | DV_II_49_0_bit | DV_II_54_0_bit | DV_II_55_0_bit))
+ MOVL W_53+212(FP), CX
+ MOVL W_54+216(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x9fddf7ff, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[52] ^ W[53]) >> 29) & 1) - 1) | ^(DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit | DV_II_53_0_bit | DV_II_54_0_bit))
+ MOVL W_52+208(FP), CX
+ MOVL W_53+212(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xcfeefdff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[50] ^ (W[53] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_50_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_48_0_bit | DV_II_54_0_bit))
+ MOVL W_50+200(FP), CX
+ MOVL W_53+212(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xdfed77ff, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[50] ^ W[51]) >> 29) & 1) - 1) | ^(DV_I_47_0_bit | DV_II_46_0_bit | DV_II_51_0_bit | DV_II_52_0_bit | DV_II_56_0_bit))
+ MOVL W_50+200(FP), CX
+ MOVL W_51+204(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x75fdffdf, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[49] ^ (W[52] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit | DV_II_47_0_bit | DV_II_53_0_bit))
+ MOVL W_49+196(FP), CX
+ MOVL W_52+208(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xeff6ddff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[48] ^ (W[51] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit | DV_II_46_0_bit | DV_II_52_0_bit))
+ MOVL W_48+192(FP), CX
+ MOVL W_51+204(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xf7fd777f, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[42] ^ W[43]) >> 29) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_49_0_bit | DV_I_50_0_bit | DV_II_48_0_bit | DV_II_49_0_bit))
+ MOVL W_42+168(FP), CX
+ MOVL W_43+172(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xffcff5f7, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[41] ^ W[42]) >> 29) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_48_0_bit | DV_I_49_0_bit | DV_II_47_0_bit | DV_II_48_0_bit))
+ MOVL W_41+164(FP), CX
+ MOVL W_42+168(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xffe7fd7b, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[40] >> 4) ^ (W[43] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_50_0_bit | DV_II_49_0_bit | DV_II_56_0_bit))
+ MOVL W_40+160(FP), CX
+ MOVL W_43+172(FP), DX
+ SHRL $0x04, CX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x7fdff7f5, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[39] >> 4) ^ (W[42] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_49_0_bit | DV_II_48_0_bit | DV_II_55_0_bit))
+ MOVL W_39+156(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x04, CX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xbfeffdfa, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_44_0_bit | DV_I_48_0_bit | DV_II_47_0_bit | DV_II_54_0_bit | DV_II_56_0_bit)) != 0 {
+ // mask &= (((((W[38] >> 4) ^ (W[41] >> 29)) & 1) - 1) | ^(DV_I_44_0_bit | DV_I_48_0_bit | DV_II_47_0_bit | DV_II_54_0_bit | DV_II_56_0_bit))
+ // }
+ TESTL $0xa0080082, AX
+ JE f1
+ MOVL W_38+152(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x04, CX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x5ff7ff7d, CX
+ ANDL CX, AX
+
+f1:
+ // mask &= (((((W[37] >> 4) ^ (W[40] >> 29)) & 1) - 1) | ^(DV_I_43_0_bit | DV_I_47_0_bit | DV_II_46_0_bit | DV_II_53_0_bit | DV_II_55_0_bit))
+ MOVL W_37+148(FP), CX
+ MOVL W_40+160(FP), DX
+ SHRL $0x04, CX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xaffdffde, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_51_0_bit | DV_II_56_0_bit)) != 0 {
+ // mask &= (((((W[55] ^ W[56]) >> 29) & 1) - 1) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_51_0_bit | DV_II_56_0_bit))
+ // }
+ TESTL $0x82108000, AX
+ JE f2
+ MOVL W_55+220(FP), CX
+ MOVL W_56+224(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0x7def7fff, CX
+ ANDL CX, AX
+
+f2:
+ // if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_50_0_bit | DV_II_56_0_bit)) != 0 {
+ // mask &= ((((W[52] ^ (W[55] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_50_0_bit | DV_II_56_0_bit))
+ // }
+ TESTL $0x80908000, AX
+ JE f3
+ MOVL W_52+208(FP), CX
+ MOVL W_55+220(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0x7f6f7fff, CX
+ ANDL CX, AX
+
+f3:
+ // if (mask & (DV_I_51_0_bit | DV_II_47_0_bit | DV_II_49_0_bit | DV_II_55_0_bit)) != 0 {
+ // mask &= ((((W[51] ^ (W[54] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_51_0_bit | DV_II_47_0_bit | DV_II_49_0_bit | DV_II_55_0_bit))
+ // }
+ TESTL $0x40282000, AX
+ JE f4
+ MOVL W_51+204(FP), CX
+ MOVL W_54+216(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xbfd7dfff, CX
+ ANDL CX, AX
+
+f4:
+ // if (mask & (DV_I_48_0_bit | DV_II_47_0_bit | DV_II_52_0_bit | DV_II_53_0_bit)) != 0 {
+ // mask &= (((((W[51] ^ W[52]) >> 29) & 1) - 1) | ^(DV_I_48_0_bit | DV_II_47_0_bit | DV_II_52_0_bit | DV_II_53_0_bit))
+ // }
+ TESTL $0x18080080, AX
+ JE f5
+ MOVL W_51+204(FP), CX
+ MOVL W_52+208(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xe7f7ff7f, CX
+ ANDL CX, AX
+
+f5:
+ // if (mask & (DV_I_46_0_bit | DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit)) != 0 {
+ // mask &= (((((W[36] >> 4) ^ (W[40] >> 29)) & 1) - 1) | ^(DV_I_46_0_bit | DV_I_49_0_bit | DV_II_45_0_bit | DV_II_48_0_bit))
+ // }
+ TESTL $0x00110208, AX
+ JE f6
+ MOVL W_36+144(FP), CX
+ SHRL $0x04, CX
+ MOVL W_40+160(FP), DX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xffeefdf7, CX
+ ANDL CX, AX
+
+f6:
+ // if (mask & (DV_I_52_0_bit | DV_II_48_0_bit | DV_II_49_0_bit)) != 0 {
+ // mask &= ((0 - (((W[53] ^ W[56]) >> 29) & 1)) | ^(DV_I_52_0_bit | DV_II_48_0_bit | DV_II_49_0_bit))
+ // }
+ TESTL $0x00308000, AX
+ JE f7
+ MOVL W_53+212(FP), CX
+ MOVL W_56+224(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffcf7fff, CX
+ ANDL CX, AX
+
+f7:
+ // if (mask & (DV_I_50_0_bit | DV_II_46_0_bit | DV_II_47_0_bit)) != 0 {
+ // mask &= ((0 - (((W[51] ^ W[54]) >> 29) & 1)) | ^(DV_I_50_0_bit | DV_II_46_0_bit | DV_II_47_0_bit))
+ // }
+ TESTL $0x000a0800, AX
+ JE f8
+ MOVL W_51+204(FP), CX
+ MOVL W_54+216(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfff5f7ff, CX
+ ANDL CX, AX
+
+f8:
+ // if (mask & (DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit)) != 0 {
+ // mask &= ((0 - (((W[50] ^ W[52]) >> 29) & 1)) | ^(DV_I_49_0_bit | DV_I_51_0_bit | DV_II_45_0_bit))
+ // }
+ TESTL $0x00012200, AX
+ JE f9
+ MOVL W_50+200(FP), CX
+ MOVL W_52+208(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfffeddff, CX
+ ANDL CX, AX
+
+f9:
+ // if (mask & (DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit)) != 0 {
+ // mask &= ((0 - (((W[49] ^ W[51]) >> 29) & 1)) | ^(DV_I_48_0_bit | DV_I_50_0_bit | DV_I_52_0_bit))
+ // }
+ TESTL $0x00008880, AX
+ JE f10
+ MOVL W_49+196(FP), CX
+ MOVL W_51+204(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffff777f, CX
+ ANDL CX, AX
+
+f10:
+ // if (mask & (DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit)) != 0 {
+ // mask &= ((0 - (((W[48] ^ W[50]) >> 29) & 1)) | ^(DV_I_47_0_bit | DV_I_49_0_bit | DV_I_51_0_bit))
+ // }
+ TESTL $0x00002220, AX
+ JE f11
+ MOVL W_48+192(FP), CX
+ MOVL W_50+200(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffffdddf, CX
+ ANDL CX, AX
+
+f11:
+ // if (mask & (DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit)) != 0 {
+ // mask &= ((0 - (((W[47] ^ W[49]) >> 29) & 1)) | ^(DV_I_46_0_bit | DV_I_48_0_bit | DV_I_50_0_bit))
+ // }
+ TESTL $0x00000888, AX
+ JE f12
+ MOVL W_47+188(FP), CX
+ MOVL W_49+196(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfffff777, CX
+ ANDL CX, AX
+
+f12:
+ // if (mask & (DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit)) != 0 {
+ // mask &= ((0 - (((W[46] ^ W[48]) >> 29) & 1)) | ^(DV_I_45_0_bit | DV_I_47_0_bit | DV_I_49_0_bit))
+ // }
+ TESTL $0x00000224, AX
+ JE f13
+ MOVL W_46+184(FP), CX
+ MOVL W_48+192(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfffffddb, CX
+ ANDL CX, AX
+
+f13:
+ // mask &= ((((W[45] ^ W[47]) & (1 << 6)) - (1 << 6)) | ^(DV_I_47_2_bit | DV_I_49_2_bit | DV_I_51_2_bit))
+ MOVL W_45+180(FP), CX
+ MOVL W_47+188(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ SUBL $0x00000040, CX
+ ORL $0xffffbbbf, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit)) != 0 {
+ // mask &= ((0 - (((W[45] ^ W[47]) >> 29) & 1)) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_I_48_0_bit))
+ // }
+ TESTL $0x0000008a, AX
+ JE f14
+ MOVL W_45+180(FP), CX
+ MOVL W_47+188(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffffff75, CX
+ ANDL CX, AX
+
+f14:
+ // mask &= (((((W[44] ^ W[46]) >> 6) & 1) - 1) | ^(DV_I_46_2_bit | DV_I_48_2_bit | DV_I_50_2_bit))
+ MOVL W_44+176(FP), CX
+ MOVL W_46+184(FP), DX
+ XORL DX, CX
+ SHRL $0x06, CX
+ ANDL $0x00000001, CX
+ DECL CX
+ ORL $0xffffeeef, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit)) != 0 {
+ // mask &= ((0 - (((W[44] ^ W[46]) >> 29) & 1)) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_I_47_0_bit))
+ // }
+ TESTL $0x00000025, AX
+ JE f15
+ MOVL W_44+176(FP), CX
+ MOVL W_46+184(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffffffda, CX
+ ANDL CX, AX
+
+f15:
+ // mask &= ((0 - ((W[41] ^ (W[42] >> 5)) & (1 << 1))) | ^(DV_I_48_2_bit | DV_II_46_2_bit | DV_II_51_2_bit))
+ MOVL W_41+164(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xfbfbfeff, CX
+ ANDL CX, AX
+
+ // mask &= ((0 - ((W[40] ^ (W[41] >> 5)) & (1 << 1))) | ^(DV_I_47_2_bit | DV_I_51_2_bit | DV_II_50_2_bit))
+ MOVL W_40+160(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xfeffbfbf, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_44_0_bit | DV_I_46_0_bit | DV_II_56_0_bit)) != 0 {
+ // mask &= ((0 - (((W[40] ^ W[42]) >> 4) & 1)) | ^(DV_I_44_0_bit | DV_I_46_0_bit | DV_II_56_0_bit))
+ // }
+ TESTL $0x8000000a, AX
+ JE f16
+ MOVL W_40+160(FP), CX
+ MOVL W_42+168(FP), DX
+ XORL DX, CX
+ SHRL $0x04, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0x7ffffff5, CX
+ ANDL CX, AX
+
+f16:
+ // mask &= ((0 - ((W[39] ^ (W[40] >> 5)) & (1 << 1))) | ^(DV_I_46_2_bit | DV_I_50_2_bit | DV_II_49_2_bit))
+ MOVL W_39+156(FP), CX
+ MOVL W_40+160(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xffbfefef, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_43_0_bit | DV_I_45_0_bit | DV_II_55_0_bit)) != 0 {
+ // mask &= ((0 - (((W[39] ^ W[41]) >> 4) & 1)) | ^(DV_I_43_0_bit | DV_I_45_0_bit | DV_II_55_0_bit))
+ // }
+ TESTL $0x40000005, AX
+ JE f17
+ MOVL W_39+156(FP), CX
+ MOVL W_41+164(FP), DX
+ XORL DX, CX
+ SHRL $0x04, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xbffffffa, CX
+ ANDL CX, AX
+
+f17:
+ // if (mask & (DV_I_44_0_bit | DV_II_54_0_bit | DV_II_56_0_bit)) != 0 {
+ // mask &= ((0 - (((W[38] ^ W[40]) >> 4) & 1)) | ^(DV_I_44_0_bit | DV_II_54_0_bit | DV_II_56_0_bit))
+ // }
+ TESTL $0xa0000002, AX
+ JE f18
+ MOVL W_38+152(FP), CX
+ MOVL W_40+160(FP), DX
+ XORL DX, CX
+ SHRL $0x04, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0x5ffffffd, CX
+ ANDL CX, AX
+
+f18:
+ // if (mask & (DV_I_43_0_bit | DV_II_53_0_bit | DV_II_55_0_bit)) != 0 {
+ // mask &= ((0 - (((W[37] ^ W[39]) >> 4) & 1)) | ^(DV_I_43_0_bit | DV_II_53_0_bit | DV_II_55_0_bit))
+ // }
+ TESTL $0x50000001, AX
+ JE f19
+ MOVL W_37+148(FP), CX
+ MOVL W_39+156(FP), DX
+ XORL DX, CX
+ SHRL $0x04, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xaffffffe, CX
+ ANDL CX, AX
+
+f19:
+ // mask &= ((0 - ((W[36] ^ (W[37] >> 5)) & (1 << 1))) | ^(DV_I_47_2_bit | DV_I_50_2_bit | DV_II_46_2_bit))
+ MOVL W_36+144(FP), CX
+ MOVL W_37+148(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xfffbefbf, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_45_0_bit | DV_I_48_0_bit | DV_II_47_0_bit)) != 0 {
+ // mask &= (((((W[35] >> 4) ^ (W[39] >> 29)) & 1) - 1) | ^(DV_I_45_0_bit | DV_I_48_0_bit | DV_II_47_0_bit))
+ // }
+ TESTL $0x00080084, AX
+ JE f20
+ MOVL W_35+140(FP), CX
+ MOVL W_39+156(FP), DX
+ SHRL $0x04, CX
+ SHRL $0x1d, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ SUBL $0x00000001, CX
+ ORL $0xfff7ff7b, CX
+ ANDL CX, AX
+
+f20:
+ // if (mask & (DV_I_48_0_bit | DV_II_48_0_bit)) != 0 {
+ // mask &= ((0 - ((W[63] ^ (W[64] >> 5)) & (1 << 0))) | ^(DV_I_48_0_bit | DV_II_48_0_bit))
+ // }
+ TESTL $0x00100080, AX
+ JE f21
+ MOVL W_63+252(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffefff7f, CX
+ ANDL CX, AX
+
+f21:
+ // if (mask & (DV_I_45_0_bit | DV_II_45_0_bit)) != 0 {
+ // mask &= ((0 - ((W[63] ^ (W[64] >> 5)) & (1 << 1))) | ^(DV_I_45_0_bit | DV_II_45_0_bit))
+ // }
+ TESTL $0x00010004, AX
+ JE f22
+ MOVL W_63+252(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xfffefffb, CX
+ ANDL CX, AX
+
+f22:
+ // if (mask & (DV_I_47_0_bit | DV_II_47_0_bit)) != 0 {
+ // mask &= ((0 - ((W[62] ^ (W[63] >> 5)) & (1 << 0))) | ^(DV_I_47_0_bit | DV_II_47_0_bit))
+ // }
+ TESTL $0x00080020, AX
+ JE f23
+ MOVL W_62+248(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfff7ffdf, CX
+ ANDL CX, AX
+
+f23:
+ // if (mask & (DV_I_46_0_bit | DV_II_46_0_bit)) != 0 {
+ // mask &= ((0 - ((W[61] ^ (W[62] >> 5)) & (1 << 0))) | ^(DV_I_46_0_bit | DV_II_46_0_bit))
+ // }
+ TESTL $0x00020008, AX
+ JE f24
+ MOVL W_61+244(FP), CX
+ MOVL W_62+248(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfffdfff7, CX
+ ANDL CX, AX
+
+f24:
+ // mask &= ((0 - ((W[61] ^ (W[62] >> 5)) & (1 << 2))) | ^(DV_I_46_2_bit | DV_II_46_2_bit))
+ MOVL W_61+244(FP), CX
+ MOVL W_62+248(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000004, CX
+ NEGL CX
+ ORL $0xfffbffef, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_45_0_bit | DV_II_45_0_bit)) != 0 {
+ // mask &= ((0 - ((W[60] ^ (W[61] >> 5)) & (1 << 0))) | ^(DV_I_45_0_bit | DV_II_45_0_bit))
+ // }
+ TESTL $0x00010004, AX
+ JE f25
+ MOVL W_60+240(FP), CX
+ MOVL W_61+244(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xfffefffb, CX
+ ANDL CX, AX
+
+f25:
+ // if (mask & (DV_II_51_0_bit | DV_II_54_0_bit)) != 0 {
+ // mask &= (((((W[58] ^ W[59]) >> 29) & 1) - 1) | ^(DV_II_51_0_bit | DV_II_54_0_bit))
+ // }
+ TESTL $0x22000000, AX
+ JE f26
+ MOVL W_58+232(FP), CX
+ MOVL W_59+236(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ SUBL $0x00000001, CX
+ ORL $0xddffffff, CX
+ ANDL CX, AX
+
+f26:
+ // if (mask & (DV_II_50_0_bit | DV_II_53_0_bit)) != 0 {
+ // mask &= (((((W[57] ^ W[58]) >> 29) & 1) - 1) | ^(DV_II_50_0_bit | DV_II_53_0_bit))
+ // }
+ TESTL $0x10800000, AX
+ JE f27
+ MOVL W_57+228(FP), CX
+ MOVL W_58+232(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ SUBL $0x00000001, CX
+ ORL $0xef7fffff, CX
+ ANDL CX, AX
+
+f27:
+ // if (mask & (DV_II_52_0_bit | DV_II_54_0_bit)) != 0 {
+ // mask &= ((((W[56] ^ (W[59] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_52_0_bit | DV_II_54_0_bit))
+ // }
+ TESTL $0x28000000, AX
+ JE f28
+ MOVL W_56+224(FP), CX
+ MOVL W_59+236(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xd7ffffff, CX
+ ANDL CX, AX
+
+f28:
+ // if (mask & (DV_II_51_0_bit | DV_II_52_0_bit)) != 0 {
+ // mask &= ((0 - (((W[56] ^ W[59]) >> 29) & 1)) | ^(DV_II_51_0_bit | DV_II_52_0_bit))
+ // }
+ TESTL $0x0a000000, AX
+ JE f29
+ MOVL W_56+224(FP), CX
+ MOVL W_59+236(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xf5ffffff, CX
+ ANDL CX, AX
+
+f29:
+ // if (mask & (DV_II_49_0_bit | DV_II_52_0_bit)) != 0 {
+ // mask &= (((((W[56] ^ W[57]) >> 29) & 1) - 1) | ^(DV_II_49_0_bit | DV_II_52_0_bit))
+ // }
+ TESTL $0x08200000, AX
+ JE f30
+ MOVL W_56+224(FP), CX
+ MOVL W_57+228(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ SUBL $0x00000001, CX
+ ORL $0xf7dfffff, CX
+ ANDL CX, AX
+
+f30:
+ // if (mask & (DV_II_51_0_bit | DV_II_53_0_bit)) != 0 {
+ // mask &= ((((W[55] ^ (W[58] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_51_0_bit | DV_II_53_0_bit))
+ // }
+ TESTL $0x12000000, AX
+ JE f31
+ MOVL W_55+220(FP), CX
+ MOVL W_58+232(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xedffffff, CX
+ ANDL CX, AX
+
+f31:
+ // if (mask & (DV_II_50_0_bit | DV_II_52_0_bit)) != 0 {
+ // mask &= ((((W[54] ^ (W[57] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_50_0_bit | DV_II_52_0_bit))
+ // }
+ TESTL $0x08800000, AX
+ JE f32
+ MOVL W_54+216(FP), CX
+ MOVL W_57+228(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xf77fffff, CX
+ ANDL CX, AX
+
+f32:
+ // if (mask & (DV_II_49_0_bit | DV_II_51_0_bit)) != 0 {
+ // mask &= ((((W[53] ^ (W[56] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_II_49_0_bit | DV_II_51_0_bit))
+ // }
+ TESTL $0x02200000, AX
+ JE f33
+ MOVL W_53+212(FP), CX
+ MOVL W_56+224(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xfddfffff, CX
+ ANDL CX, AX
+
+f33:
+ // mask &= ((((W[51] ^ (W[50] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_50_2_bit | DV_II_46_2_bit))
+ MOVL W_51+204(FP), CX
+ MOVL W_50+200(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xfffbefff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[48] ^ W[50]) & (1 << 6)) - (1 << 6)) | ^(DV_I_50_2_bit | DV_II_46_2_bit))
+ MOVL W_48+192(FP), CX
+ MOVL W_50+200(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ SUBL $0x00000040, CX
+ ORL $0xfffbefff, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_51_0_bit | DV_I_52_0_bit)) != 0 {
+ // mask &= ((0 - (((W[48] ^ W[55]) >> 29) & 1)) | ^(DV_I_51_0_bit | DV_I_52_0_bit))
+ // }
+ TESTL $0x0000a000, AX
+ JE f34
+ MOVL W_48+192(FP), CX
+ MOVL W_55+220(FP), DX
+ XORL DX, CX
+ SHRL $0x1d, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ ORL $0xffff5fff, CX
+ ANDL CX, AX
+
+f34:
+ // mask &= ((((W[47] ^ W[49]) & (1 << 6)) - (1 << 6)) | ^(DV_I_49_2_bit | DV_I_51_2_bit))
+ MOVL W_47+188(FP), CX
+ MOVL W_49+196(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ SUBL $0x00000040, CX
+ ORL $0xffffbbff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[48] ^ (W[47] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_47_2_bit | DV_II_51_2_bit))
+ MOVL W_48+192(FP), CX
+ MOVL W_47+188(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xfbffffbf, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[46] ^ W[48]) & (1 << 6)) - (1 << 6)) | ^(DV_I_48_2_bit | DV_I_50_2_bit))
+ MOVL W_46+184(FP), CX
+ MOVL W_48+192(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ SUBL $0x00000040, CX
+ ORL $0xffffeeff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[47] ^ (W[46] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_46_2_bit | DV_II_50_2_bit))
+ MOVL W_47+188(FP), CX
+ MOVL W_46+184(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xfeffffef, CX
+ ANDL CX, AX
+
+ // mask &= ((0 - ((W[44] ^ (W[45] >> 5)) & (1 << 1))) | ^(DV_I_51_2_bit | DV_II_49_2_bit))
+ MOVL W_44+176(FP), CX
+ MOVL W_45+180(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xffbfbfff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[43] ^ W[45]) & (1 << 6)) - (1 << 6)) | ^(DV_I_47_2_bit | DV_I_49_2_bit))
+ MOVL W_43+172(FP), CX
+ MOVL W_45+180(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ SUBL $0x00000040, CX
+ ORL $0xfffffbbf, CX
+ ANDL CX, AX
+
+ // mask &= (((((W[42] ^ W[44]) >> 6) & 1) - 1) | ^(DV_I_46_2_bit | DV_I_48_2_bit))
+ MOVL W_42+168(FP), CX
+ MOVL W_44+176(FP), DX
+ XORL DX, CX
+ SHRL $0x06, CX
+ ANDL $0x00000001, CX
+ SUBL $0x00000001, CX
+ ORL $0xfffffeef, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[43] ^ (W[42] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_II_46_2_bit | DV_II_51_2_bit))
+ MOVL W_43+172(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xfbfbffff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[42] ^ (W[41] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_51_2_bit | DV_II_50_2_bit))
+ MOVL W_42+168(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xfeffbfff, CX
+ ANDL CX, AX
+
+ // mask &= ((((W[41] ^ (W[40] >> 5)) & (1 << 1)) - (1 << 1)) | ^(DV_I_50_2_bit | DV_II_49_2_bit))
+ MOVL W_41+164(FP), CX
+ MOVL W_40+160(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ SUBL $0x00000002, CX
+ ORL $0xffbfefff, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_52_0_bit | DV_II_51_0_bit)) != 0 {
+ // mask &= ((((W[39] ^ (W[43] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_52_0_bit | DV_II_51_0_bit))
+ // }
+ TESTL $0x02008000, AX
+ JE f35
+ MOVL W_39+156(FP), CX
+ MOVL W_43+172(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xfdff7fff, CX
+ ANDL CX, AX
+
+f35:
+ // if (mask & (DV_I_51_0_bit | DV_II_50_0_bit)) != 0 {
+ // mask &= ((((W[38] ^ (W[42] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_51_0_bit | DV_II_50_0_bit))
+ // }
+ TESTL $0x00802000, AX
+ JE f36
+ MOVL W_38+152(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xff7fdfff, CX
+ ANDL CX, AX
+
+f36:
+ // if (mask & (DV_I_48_2_bit | DV_I_51_2_bit)) != 0 {
+ // mask &= ((0 - ((W[37] ^ (W[38] >> 5)) & (1 << 1))) | ^(DV_I_48_2_bit | DV_I_51_2_bit))
+ // }
+ TESTL $0x00004100, AX
+ JE f37
+ MOVL W_37+148(FP), CX
+ MOVL W_38+152(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xffffbeff, CX
+ ANDL CX, AX
+
+f37:
+ // if (mask & (DV_I_50_0_bit | DV_II_49_0_bit)) != 0 {
+ // mask &= ((((W[37] ^ (W[41] >> 25)) & (1 << 4)) - (1 << 4)) | ^(DV_I_50_0_bit | DV_II_49_0_bit))
+ // }
+ TESTL $0x00200800, AX
+ JE f38
+ MOVL W_37+148(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ SUBL $0x00000010, CX
+ ORL $0xffdff7ff, CX
+ ANDL CX, AX
+
+f38:
+ // if (mask & (DV_II_52_0_bit | DV_II_54_0_bit)) != 0 {
+ // mask &= ((0 - ((W[36] ^ W[38]) & (1 << 4))) | ^(DV_II_52_0_bit | DV_II_54_0_bit))
+ // }
+ TESTL $0x28000000, AX
+ JE f39
+ MOVL W_36+144(FP), CX
+ MOVL W_38+152(FP), DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ NEGL CX
+ ORL $0xd7ffffff, CX
+ ANDL CX, AX
+
+f39:
+ // mask &= ((0 - ((W[35] ^ (W[36] >> 5)) & (1 << 1))) | ^(DV_I_46_2_bit | DV_I_49_2_bit))
+ MOVL W_35+140(FP), CX
+ MOVL W_36+144(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ ORL $0xfffffbef, CX
+ ANDL CX, AX
+
+ // if (mask & (DV_I_51_0_bit | DV_II_47_0_bit)) != 0 {
+ // mask &= ((((W[35] ^ (W[39] >> 25)) & (1 << 3)) - (1 << 3)) | ^(DV_I_51_0_bit | DV_II_47_0_bit))
+ // }
+ TESTL $0x00082000, AX
+ JE f40
+ MOVL W_35+140(FP), CX
+ MOVL W_39+156(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ SUBL $0x00000008, CX
+ ORL $0xfff7dfff, CX
+ ANDL CX, AX
+
+f40:
+ // if mask != 0
+ TESTL $0x00000000, AX
+ JNE end
+
+ // if (mask & DV_I_43_0_bit) != 0 {
+ // if not((W[61]^(W[62]>>5))&(1<<1)) != 0 ||
+ // not(not((W[59]^(W[63]>>25))&(1<<5))) != 0 ||
+ // not((W[58]^(W[63]>>30))&(1<<0)) != 0 {
+ // mask &= ^DV_I_43_0_bit
+ // }
+ // }
+ BTL $0x00, AX
+ JNC f41_skip
+ MOVL W_61+244(FP), CX
+ MOVL W_62+248(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f41_in
+ MOVL W_59+236(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f41_in
+ MOVL W_58+232(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x1e, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f41_in
+ JMP f41_skip
+
+f41_in:
+ ANDL $0xfffffffe, AX
+
+f41_skip:
+ // if (mask & DV_I_44_0_bit) != 0 {
+ // if not((W[62]^(W[63]>>5))&(1<<1)) != 0 ||
+ // not(not((W[60]^(W[64]>>25))&(1<<5))) != 0 ||
+ // not((W[59]^(W[64]>>30))&(1<<0)) != 0 {
+ // mask &= ^DV_I_44_0_bit
+ // }
+ // }
+ BTL $0x01, AX
+ JNC f42_skip
+ MOVL W_62+248(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f42_in
+ MOVL W_60+240(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f42_in
+ MOVL W_59+236(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x1e, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f42_in
+ JMP f42_skip
+
+f42_in:
+ ANDL $0xfffffffd, AX
+
+f42_skip:
+ // if (mask & DV_I_46_2_bit) != 0 {
+ // mask &= ((^((W[40] ^ W[42]) >> 2)) | ^DV_I_46_2_bit)
+ // }
+ BTL $0x04, AX
+ JNC f43
+ MOVL W_40+160(FP), CX
+ MOVL W_42+168(FP), DX
+ XORL DX, CX
+ SHRL $0x02, CX
+ NOTL CX
+ ORL $0xffffffef, CX
+ ANDL CX, AX
+
+f43:
+ // if (mask & DV_I_47_2_bit) != 0 {
+ // if not((W[62]^(W[63]>>5))&(1<<2)) != 0 ||
+ // not(not((W[41]^W[43])&(1<<6))) != 0 {
+ // mask &= ^DV_I_47_2_bit
+ // }
+ // }
+ BTL $0x06, AX
+ JNC f44_skip
+ MOVL W_62+248(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000004, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f44_in
+ MOVL W_41+164(FP), CX
+ MOVL W_43+172(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f44_in
+ JMP f44_skip
+
+f44_in:
+ ANDL $0xffffffbf, AX
+
+f44_skip:
+ // if (mask & DV_I_48_2_bit) != 0 {
+ // if not((W[63]^(W[64]>>5))&(1<<2)) != 0 ||
+ // not(not((W[48]^(W[49]<<5))&(1<<6))) != 0 {
+ // mask &= ^DV_I_48_2_bit
+ // }
+ // }
+ BTL $0x08, AX
+ JNC f45_skip
+ MOVL W_63+252(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000004, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f45_in
+ MOVL W_48+192(FP), CX
+ MOVL W_49+196(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f45_in
+ JMP f45_skip
+
+f45_in:
+ ANDL $0xfffffeff, AX
+
+f45_skip:
+ // if (mask & DV_I_49_2_bit) != 0 {
+ // if not(not((W[49]^(W[50]<<5))&(1<<6))) != 0 ||
+ // not((W[42]^W[50])&(1<<1)) != 0 ||
+ // not(not((W[39]^(W[40]<<5))&(1<<6))) != 0 ||
+ // not((W[38]^W[40])&(1<<1)) != 0 {
+ // mask &= ^DV_I_49_2_bit
+ // }
+ // }
+ BTL $0x0a, AX
+ JNC f46_skip
+ MOVL W_49+196(FP), CX
+ MOVL W_50+200(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f46_in
+ MOVL W_42+168(FP), CX
+ MOVL W_50+200(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ CMPL CX, $0x00000000
+ JE f46_in
+ MOVL W_39+156(FP), CX
+ MOVL W_40+160(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f46_in
+ MOVL W_38+152(FP), CX
+ MOVL W_40+160(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ CMPL CX, $0x00000000
+ JE f46_in
+ JMP f46_skip
+
+f46_in:
+ ANDL $0xfffffbff, AX
+
+f46_skip:
+ // if (mask & DV_I_50_0_bit) != 0 {
+ // mask &= (((W[36] ^ W[37]) << 7) | ^DV_I_50_0_bit)
+ // }
+ BTL $0x0b, AX
+ JNC f47
+ MOVL W_36+144(FP), CX
+ MOVL W_37+148(FP), DX
+ XORL DX, CX
+ SHLL $0x07, CX
+ ORL $0xfffff7ff, CX
+ ANDL CX, AX
+
+f47:
+ // if (mask & DV_I_50_2_bit) != 0 {
+ // mask &= (((W[43] ^ W[51]) << 11) | ^DV_I_50_2_bit)
+ // }
+ BTL $0x0c, AX
+ JNC f48
+ MOVL W_43+172(FP), CX
+ MOVL W_51+204(FP), DX
+ XORL DX, CX
+ SHLL $0x0b, CX
+ ORL $0xffffefff, CX
+ ANDL CX, AX
+
+f48:
+ // if (mask & DV_I_51_0_bit) != 0 {
+ // mask &= (((W[37] ^ W[38]) << 9) | ^DV_I_51_0_bit)
+ // }
+ BTL $0x0d, AX
+ JNC f49
+ MOVL W_37+148(FP), CX
+ MOVL W_38+152(FP), DX
+ XORL DX, CX
+ SHLL $0x09, CX
+ ORL $0xffffdfff, CX
+ ANDL CX, AX
+
+f49:
+ // if (mask & DV_I_51_2_bit) != 0 {
+ // if not(not((W[51]^(W[52]<<5))&(1<<6))) != 0 ||
+ // not(not((W[49]^W[51])&(1<<6))) != 0 ||
+ // not(not((W[37]^(W[37]>>5))&(1<<1))) != 0 ||
+ // not(not((W[35]^(W[39]>>25))&(1<<5))) != 0 {
+ // mask &= ^DV_I_51_2_bit
+ // }
+ // }
+ BTL $0x0e, AX
+ JNC f50_skip
+ MOVL W_51+204(FP), CX
+ MOVL W_52+208(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f50_in
+ MOVL W_49+196(FP), CX
+ MOVL W_51+204(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f50_in
+ MOVL W_37+148(FP), CX
+ MOVL W_37+148(FP), DX
+ SHRL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ CMPL CX, $0x00000000
+ JNE f50_in
+ MOVL W_35+140(FP), CX
+ MOVL W_39+156(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f50_in
+ JMP f50_skip
+
+f50_in:
+ ANDL $0xffffbfff, AX
+
+f50_skip:
+ // if (mask & DV_I_52_0_bit) != 0 {
+ // mask &= (((W[38] ^ W[39]) << 11) | ^DV_I_52_0_bit)
+ // }
+ BTL $0x0f, AX
+ JNC f51
+ MOVL W_38+152(FP), CX
+ MOVL W_39+156(FP), DX
+ XORL DX, CX
+ SHLL $0x0b, CX
+ ORL $0xffff7fff, CX
+ ANDL CX, AX
+
+f51:
+ // if (mask & DV_II_46_2_bit) != 0 {
+ // mask &= (((W[47] ^ W[51]) << 17) | ^DV_II_46_2_bit)
+ // }
+ TESTL $0x00040000, AX
+ BTL $0x12, AX
+ JNC f52
+ MOVL W_47+188(FP), CX
+ MOVL W_51+204(FP), DX
+ XORL DX, CX
+ SHLL $0x11, CX
+ ORL $0xfffbffff, CX
+ ANDL CX, AX
+
+f52:
+ // if (mask & DV_II_48_0_bit) != 0 {
+ // if not(not((W[36]^(W[40]>>25))&(1<<3))) != 0 ||
+ // not((W[35]^(W[40]<<2))&(1<<30)) != 0 {
+ // mask &= ^DV_II_48_0_bit
+ // }
+ // }
+ BTL $0x14, AX
+ JNC f53_skip
+ MOVL W_36+144(FP), CX
+ MOVL W_40+160(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f53_in
+ MOVL W_35+140(FP), CX
+ MOVL W_40+160(FP), DX
+ SHLL $0x02, DX
+ XORL DX, CX
+ ANDL $0x40000000, CX
+ CMPL CX, $0x00000000
+ JNE f53_in
+ JMP f53_skip
+
+f53_in:
+ ANDL $0xffefffff, AX
+
+f53_skip:
+ // if (mask & DV_II_49_0_bit) != 0 {
+ // if not(not((W[37]^(W[41]>>25))&(1<<3))) != 0 ||
+ // not((W[36]^(W[41]<<2))&(1<<30)) != 0 {
+ // mask &= ^DV_II_49_0_bit
+ // }
+ // }
+ BTL $0x15, AX
+ JNC f54_skip
+ MOVL W_37+148(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f54_in
+ MOVL W_36+144(FP), CX
+ MOVL W_41+164(FP), DX
+ SHLL $0x02, DX
+ XORL DX, CX
+ ANDL $0x40000000, CX
+ CMPL CX, $0x00000000
+ JNE f54_in
+ JMP f54_skip
+
+f54_in:
+ ANDL $0xffdfffff, AX
+
+f54_skip:
+ // if (mask & DV_II_49_2_bit) != 0 {
+ // if not(not((W[53]^(W[54]<<5))&(1<<6))) != 0 ||
+ // not(not((W[51]^W[53])&(1<<6))) != 0 ||
+ // not((W[50]^W[54])&(1<<1)) != 0 ||
+ // not(not((W[45]^(W[46]<<5))&(1<<6))) != 0 ||
+ // not(not((W[37]^(W[41]>>25))&(1<<5))) != 0 ||
+ // not((W[36]^(W[41]>>30))&(1<<0)) != 0 {
+ // mask &= ^DV_II_49_2_bit
+ // }
+ // }
+ BTL $0x16, AX
+ JNC f55_skip
+ MOVL W_53+212(FP), CX
+ MOVL W_54+216(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f55_in
+ MOVL W_51+204(FP), CX
+ MOVL W_53+212(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f55_in
+ MOVL W_50+200(FP), CX
+ MOVL W_54+216(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f55_in
+ MOVL W_45+180(FP), CX
+ MOVL W_46+184(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f55_in
+ MOVL W_37+148(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f55_in
+ MOVL W_36+144(FP), CX
+ MOVL W_41+164(FP), DX
+ SHRL $0x1e, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f55_in
+ JMP f55_skip
+
+f55_in:
+ ANDL $0xffbfffff, AX
+
+f55_skip:
+ // if (mask & DV_II_50_0_bit) != 0 {
+ // if not((W[55]^W[58])&(1<<29)) != 0 ||
+ // not(not((W[38]^(W[42]>>25))&(1<<3))) != 0 ||
+ // not((W[37]^(W[42]<<2))&(1<<30)) != 0 {
+ // mask &= ^DV_II_50_0_bit
+ // }
+ // }
+ BTL $0x17, AX
+ JNC f56_skip
+ MOVL W_55+220(FP), CX
+ MOVL W_58+232(FP), DX
+ XORL DX, CX
+ ANDL $0x20000000, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f56_in
+ MOVL W_38+152(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f56_in
+ MOVL W_37+148(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x02, DX
+ XORL DX, CX
+ ANDL $0x40000000, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f56_in
+ JMP f56_skip
+
+f56_in:
+ ANDL $0xff7fffff, AX
+
+f56_skip:
+ // if (mask & DV_II_50_2_bit) != 0 {
+ // if not(not((W[54]^(W[55]<<5))&(1<<6))) != 0 ||
+ // not(not((W[52]^W[54])&(1<<6))) != 0 ||
+ // not((W[51]^W[55])&(1<<1)) != 0 ||
+ // not((W[45]^W[47])&(1<<1)) != 0 ||
+ // not(not((W[38]^(W[42]>>25))&(1<<5))) != 0 ||
+ // not((W[37]^(W[42]>>30))&(1<<0)) != 0 {
+ // mask &= ^DV_II_50_2_bit
+ // }
+ // }
+ BTL $0x18, AX
+ JNC f57_skip
+ MOVL W_54+216(FP), CX
+ MOVL W_55+220(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f57_in
+ MOVL W_52+208(FP), CX
+ MOVL W_54+216(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f57_in
+ MOVL W_51+204(FP), CX
+ MOVL W_55+220(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f57_in
+ MOVL W_45+180(FP), CX
+ MOVL W_47+188(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f57_in
+ MOVL W_38+152(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f57_in
+ MOVL W_37+148(FP), CX
+ MOVL W_42+168(FP), DX
+ SHRL $0x1e, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f57_in
+ JMP f57_skip
+
+f57_in:
+ ANDL $0xfeffffff, AX
+
+f57_skip:
+ // if (mask & DV_II_51_0_bit) != 0 {
+ // if not(not((W[39]^(W[43]>>25))&(1<<3))) != 0 ||
+ // not((W[38]^(W[43]<<2))&(1<<30)) != 0 {
+ // mask &= ^DV_II_51_0_bit
+ // }
+ // }
+ BTL $0x19, AX
+ JNC f58_skip
+ MOVL W_39+156(FP), CX
+ MOVL W_43+172(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f58_in
+ MOVL W_38+152(FP), CX
+ MOVL W_43+172(FP), DX
+ SHLL $0x02, DX
+ XORL DX, CX
+ ANDL $0x40000000, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f58_in
+ JMP f58_skip
+
+f58_in:
+ ANDL $0xfdffffff, AX
+
+f58_skip:
+ // if (mask & DV_II_51_2_bit) != 0 {
+ // if not(not((W[55]^(W[56]<<5))&(1<<6))) != 0 ||
+ // not(not((W[53]^W[55])&(1<<6))) != 0 ||
+ // not((W[52]^W[56])&(1<<1)) != 0 ||
+ // not((W[46]^W[48])&(1<<1)) != 0 ||
+ // not(not((W[39]^(W[43]>>25))&(1<<5))) != 0 ||
+ // not((W[38]^(W[43]>>30))&(1<<0)) != 0 {
+ // mask &= ^DV_II_51_2_bit
+ // }
+ // }
+ BTL $0x1a, AX
+ JNC f59_skip
+ MOVL W_55+220(FP), CX
+ MOVL W_56+224(FP), DX
+ SHLL $0x05, DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f59_in
+ MOVL W_53+212(FP), CX
+ MOVL W_55+220(FP), DX
+ XORL DX, CX
+ ANDL $0x00000040, CX
+ CMPL CX, $0x00000000
+ JNE f59_in
+ MOVL W_52+208(FP), CX
+ MOVL W_56+224(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f59_in
+ MOVL W_46+184(FP), CX
+ MOVL W_48+192(FP), DX
+ XORL DX, CX
+ ANDL $0x00000002, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f59_in
+ MOVL W_39+156(FP), CX
+ MOVL W_43+172(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000020, CX
+ CMPL CX, $0x00000000
+ JNE f59_in
+ MOVL W_38+152(FP), CX
+ MOVL W_43+172(FP), DX
+ SHRL $0x1e, DX
+ XORL DX, CX
+ ANDL $0x00000001, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f59_in
+ JMP f59_skip
+
+f59_in:
+ ANDL $0xfbffffff, AX
+
+f59_skip:
+ // if (mask & DV_II_52_0_bit) != 0 {
+ // if not(not((W[59]^W[60])&(1<<29))) != 0 ||
+ // not(not((W[40]^(W[44]>>25))&(1<<3))) != 0 ||
+ // not(not((W[40]^(W[44]>>25))&(1<<4))) != 0 ||
+ // not((W[39]^(W[44]<<2))&(1<<30)) != 0 {
+ // mask &= ^DV_II_52_0_bit
+ // }
+ // }
+ BTL $0x1b, AX
+ JNC f60_skip
+ MOVL W_59+236(FP), CX
+ MOVL W_60+240(FP), DX
+ XORL DX, CX
+ ANDL $0x20000000, CX
+ CMPL CX, $0x00000000
+ JNE f60_in
+ MOVL W_40+160(FP), CX
+ MOVL W_44+176(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f60_in
+ MOVL W_40+160(FP), CX
+ MOVL W_44+176(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f60_in
+ MOVL W_39+156(FP), CX
+ MOVL W_44+176(FP), DX
+ SHLL $0x02, DX
+ XORL DX, CX
+ ANDL $0x40000000, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f60_in
+ JMP f60_skip
+
+f60_in:
+ ANDL $0xf7ffffff, AX
+
+f60_skip:
+ // if (mask & DV_II_53_0_bit) != 0 {
+ // if not((W[58]^W[61])&(1<<29)) != 0 ||
+ // not(not((W[57]^(W[61]>>25))&(1<<4))) != 0 ||
+ // not(not((W[41]^(W[45]>>25))&(1<<3))) != 0 ||
+ // not(not((W[41]^(W[45]>>25))&(1<<4))) != 0 {
+ // mask &= ^DV_II_53_0_bit
+ // }
+ // }
+ BTL $0x1c, AX
+ JNC f61_skip
+ MOVL W_58+232(FP), CX
+ MOVL W_61+244(FP), DX
+ XORL DX, CX
+ ANDL $0x20000000, CX
+ NEGL CX
+ CMPL CX, $0x00000000
+ JE f61_in
+ MOVL W_57+228(FP), CX
+ MOVL W_61+244(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f61_in
+ MOVL W_41+164(FP), CX
+ MOVL W_45+180(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f61_in
+ MOVL W_41+164(FP), CX
+ MOVL W_45+180(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f61_in
+ JMP f61_skip
+
+f61_in:
+ ANDL $0xefffffff, AX
+
+f61_skip:
+ // if (mask & DV_II_54_0_bit) != 0 {
+ // if not(not((W[58]^(W[62]>>25))&(1<<4))) != 0 ||
+ // not(not((W[42]^(W[46]>>25))&(1<<3))) != 0 ||
+ // not(not((W[42]^(W[46]>>25))&(1<<4))) != 0 {
+ // mask &= ^DV_II_54_0_bit
+ // }
+ // }
+ BTL $0x1d, AX
+ JNC f62_skip
+ MOVL W_58+232(FP), CX
+ MOVL W_62+248(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f62_in
+ MOVL W_42+168(FP), CX
+ MOVL W_46+184(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f62_in
+ MOVL W_42+168(FP), CX
+ MOVL W_46+184(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f62_in
+ JMP f62_skip
+
+f62_in:
+ ANDL $0xdfffffff, AX
+
+f62_skip:
+ // if (mask & DV_II_55_0_bit) != 0 {
+ // if not(not((W[59]^(W[63]>>25))&(1<<4))) != 0 ||
+ // not(not((W[57]^(W[59]>>25))&(1<<4))) != 0 ||
+ // not(not((W[43]^(W[47]>>25))&(1<<3))) != 0 ||
+ // not(not((W[43]^(W[47]>>25))&(1<<4))) != 0 {
+ // mask &= ^DV_II_55_0_bit
+ // }
+ // }
+ BTL $0x1e, AX
+ JNC f63_skip
+ MOVL W_59+236(FP), CX
+ MOVL W_63+252(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f63_in
+ MOVL W_57+228(FP), CX
+ MOVL W_59+236(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f63_in
+ MOVL W_43+172(FP), CX
+ MOVL W_47+188(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f63_in
+ MOVL W_43+172(FP), CX
+ MOVL W_47+188(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f63_in
+ JMP f63_skip
+
+f63_in:
+ ANDL $0xbfffffff, AX
+
+f63_skip:
+ // if (mask & DV_II_56_0_bit) != 0 {
+ // if not(not((W[60]^(W[64]>>25))&(1<<4))) != 0 ||
+ // not(not((W[44]^(W[48]>>25))&(1<<3))) != 0 ||
+ // not(not((W[44]^(W[48]>>25))&(1<<4))) != 0 {
+ // mask &= ^DV_II_56_0_bit
+ // }
+ // }
+ BTL $0x1f, AX
+ JNC f64_skip
+ MOVL W_60+240(FP), CX
+ MOVL W_64+256(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f64_in
+ MOVL W_44+176(FP), CX
+ MOVL W_48+192(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000008, CX
+ CMPL CX, $0x00000000
+ JNE f64_in
+ MOVL W_44+176(FP), CX
+ MOVL W_48+192(FP), DX
+ SHRL $0x19, DX
+ XORL DX, CX
+ ANDL $0x00000010, CX
+ CMPL CX, $0x00000000
+ JNE f64_in
+ JMP f64_skip
+
+f64_in:
+ ANDL $0x7fffffff, AX
+
+f64_skip:
+end:
+ MOVL AX, ret+320(FP)
+ RET
diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/check.go b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_generic.go
similarity index 99%
rename from vendor/github.com/pjbgf/sha1cd/ubc/check.go
rename to vendor/github.com/pjbgf/sha1cd/ubc/ubc_generic.go
index 167a555..ee95bd5 100644
--- a/vendor/github.com/pjbgf/sha1cd/ubc/check.go
+++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_generic.go
@@ -25,7 +25,7 @@ type DvInfo struct {
// for all listed DVs. It returns a dvmask where each bit belonging to a DV is set if all
// unavoidable bitconditions for that DV have been met.
// Thus, one needs to do the recompression check for each DV that has its bit set.
-func CalculateDvMask(W [80]uint32) uint32 {
+func CalculateDvMaskGeneric(W [80]uint32) uint32 {
mask := uint32(0xFFFFFFFF)
mask &= (((((W[44] ^ W[45]) >> 29) & 1) - 1) | ^(DV_I_48_0_bit | DV_I_51_0_bit | DV_I_52_0_bit | DV_II_45_0_bit | DV_II_46_0_bit | DV_II_50_0_bit | DV_II_51_0_bit))
mask &= (((((W[49] ^ W[50]) >> 29) & 1) - 1) | ^(DV_I_46_0_bit | DV_II_45_0_bit | DV_II_50_0_bit | DV_II_51_0_bit | DV_II_55_0_bit | DV_II_56_0_bit))
diff --git a/vendor/github.com/pjbgf/sha1cd/ubc/ubc_noasm.go b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_noasm.go
new file mode 100644
index 0000000..48d6dff
--- /dev/null
+++ b/vendor/github.com/pjbgf/sha1cd/ubc/ubc_noasm.go
@@ -0,0 +1,12 @@
+//go:build !amd64 || noasm || !gc
+// +build !amd64 noasm !gc
+
+package ubc
+
+// Check takes as input an expanded message block and verifies the unavoidable bitconditions
+// for all listed DVs. It returns a dvmask where each bit belonging to a DV is set if all
+// unavoidable bitconditions for that DV have been met.
+// Thus, one needs to do the recompression check for each DV that has its bit set.
+func CalculateDvMask(W [80]uint32) uint32 {
+ return CalculateDvMaskGeneric(W)
+}
diff --git a/vendor/github.com/thlib/go-timezone-local/tzlocal/tz_unix.go b/vendor/github.com/thlib/go-timezone-local/tzlocal/tz_unix.go
index 02f8684..e73ffe2 100644
--- a/vendor/github.com/thlib/go-timezone-local/tzlocal/tz_unix.go
+++ b/vendor/github.com/thlib/go-timezone-local/tzlocal/tz_unix.go
@@ -18,7 +18,7 @@ func inferFromPath(p string) (string, error) {
parts := strings.Split(p, string(filepath.Separator))
for i := range parts {
- if parts[i] == "zoneinfo" {
+ if parts[i] == "zoneinfo" || parts[i] == "zoneinfo.default" {
parts = parts[i+1:]
break
}
diff --git a/vendor/golang.org/x/mod/LICENSE b/vendor/golang.org/x/mod/LICENSE
new file mode 100644
index 0000000..2a7cf70
--- /dev/null
+++ b/vendor/golang.org/x/mod/LICENSE
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 0000000..7330990
--- /dev/null
+++ b/vendor/golang.org/x/mod/PATENTS
@@ -0,0 +1,22 @@
+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
new file mode 100644
index 0000000..9a2dfd3
--- /dev/null
+++ b/vendor/golang.org/x/mod/semver/semver.go
@@ -0,0 +1,401 @@
+// 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/oauth2/oauth2.go b/vendor/golang.org/x/oauth2/oauth2.go
index 09f6a49..74f052a 100644
--- a/vendor/golang.org/x/oauth2/oauth2.go
+++ b/vendor/golang.org/x/oauth2/oauth2.go
@@ -56,7 +56,7 @@ type Config struct {
// the OAuth flow, after the resource owner's URLs.
RedirectURL string
- // Scope specifies optional requested permissions.
+ // Scopes specifies optional requested permissions.
Scopes []string
// authStyleCache caches which auth style to use when Endpoint.AuthStyle is
diff --git a/vendor/golang.org/x/sync/LICENSE b/vendor/golang.org/x/sync/LICENSE
new file mode 100644
index 0000000..2a7cf70
--- /dev/null
+++ b/vendor/golang.org/x/sync/LICENSE
@@ -0,0 +1,27 @@
+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/sync/PATENTS b/vendor/golang.org/x/sync/PATENTS
new file mode 100644
index 0000000..7330990
--- /dev/null
+++ b/vendor/golang.org/x/sync/PATENTS
@@ -0,0 +1,22 @@
+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/sync/errgroup/errgroup.go b/vendor/golang.org/x/sync/errgroup/errgroup.go
new file mode 100644
index 0000000..948a3ee
--- /dev/null
+++ b/vendor/golang.org/x/sync/errgroup/errgroup.go
@@ -0,0 +1,135 @@
+// 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 errgroup provides synchronization, error propagation, and Context
+// cancelation for groups of goroutines working on subtasks of a common task.
+//
+// [errgroup.Group] is related to [sync.WaitGroup] but adds handling of tasks
+// returning errors.
+package errgroup
+
+import (
+ "context"
+ "fmt"
+ "sync"
+)
+
+type token struct{}
+
+// A Group is a collection of goroutines working on subtasks that are part of
+// the same overall task.
+//
+// A zero Group is valid, has no limit on the number of active goroutines,
+// and does not cancel on error.
+type Group struct {
+ cancel func(error)
+
+ wg sync.WaitGroup
+
+ sem chan token
+
+ errOnce sync.Once
+ err error
+}
+
+func (g *Group) done() {
+ if g.sem != nil {
+ <-g.sem
+ }
+ g.wg.Done()
+}
+
+// WithContext returns a new Group and an associated Context derived from ctx.
+//
+// The derived Context is canceled the first time a function passed to Go
+// 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)
+ return &Group{cancel: cancel}, ctx
+}
+
+// Wait blocks until all function calls from the Go method have returned, then
+// returns the first non-nil error (if any) from them.
+func (g *Group) Wait() error {
+ g.wg.Wait()
+ if g.cancel != nil {
+ g.cancel(g.err)
+ }
+ return g.err
+}
+
+// Go calls the given function in a new goroutine.
+// It blocks until the new goroutine can be added without the number of
+// active goroutines in the group exceeding the configured limit.
+//
+// The first call to return a non-nil error cancels the group's context, if the
+// group was created by calling WithContext. The error will be returned by Wait.
+func (g *Group) Go(f func() error) {
+ if g.sem != nil {
+ g.sem <- token{}
+ }
+
+ g.wg.Add(1)
+ go func() {
+ defer g.done()
+
+ if err := f(); err != nil {
+ g.errOnce.Do(func() {
+ g.err = err
+ if g.cancel != nil {
+ g.cancel(g.err)
+ }
+ })
+ }
+ }()
+}
+
+// TryGo calls the given function in a new goroutine only if the number of
+// active goroutines in the group is currently below the configured limit.
+//
+// The return value reports whether the goroutine was started.
+func (g *Group) TryGo(f func() error) bool {
+ if g.sem != nil {
+ select {
+ case g.sem <- token{}:
+ // Note: this allows barging iff channels in general allow barging.
+ default:
+ return false
+ }
+ }
+
+ g.wg.Add(1)
+ go func() {
+ defer g.done()
+
+ if err := f(); err != nil {
+ g.errOnce.Do(func() {
+ g.err = err
+ if g.cancel != nil {
+ g.cancel(g.err)
+ }
+ })
+ }
+ }()
+ return true
+}
+
+// SetLimit limits the number of active goroutines in this group to at most n.
+// A negative value indicates no limit.
+//
+// Any subsequent call to the Go method will block until it can add an active
+// goroutine without exceeding the configured limit.
+//
+// The limit must not be modified while any goroutines in the group are active.
+func (g *Group) SetLimit(n int) {
+ if n < 0 {
+ g.sem = nil
+ return
+ }
+ if len(g.sem) != 0 {
+ panic(fmt.Errorf("errgroup: modify limit while %v goroutines in the group are still active", len(g.sem)))
+ }
+ g.sem = make(chan token, n)
+}
diff --git a/vendor/golang.org/x/sync/errgroup/go120.go b/vendor/golang.org/x/sync/errgroup/go120.go
new file mode 100644
index 0000000..f93c740
--- /dev/null
+++ b/vendor/golang.org/x/sync/errgroup/go120.go
@@ -0,0 +1,13 @@
+// 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
new file mode 100644
index 0000000..88ce334
--- /dev/null
+++ b/vendor/golang.org/x/sync/errgroup/pre_go120.go
@@ -0,0 +1,14 @@
+// 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/unix/syscall_dragonfly.go b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
index 97cb916..be8c002 100644
--- a/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
+++ b/vendor/golang.org/x/sys/unix/syscall_dragonfly.go
@@ -246,6 +246,18 @@ func Sendfile(outfd int, infd int, offset *int64, count int) (written int, err e
return sendfile(outfd, infd, offset, count)
}
+func Dup3(oldfd, newfd, flags int) error {
+ if oldfd == newfd || flags&^O_CLOEXEC != 0 {
+ return EINVAL
+ }
+ how := F_DUP2FD
+ if flags&O_CLOEXEC != 0 {
+ how = F_DUP2FD_CLOEXEC
+ }
+ _, err := fcntl(oldfd, how, newfd)
+ return err
+}
+
/*
* Exposed directly
*/
diff --git a/vendor/golang.org/x/sys/windows/dll_windows.go b/vendor/golang.org/x/sys/windows/dll_windows.go
index 4e613cf..3ca814f 100644
--- a/vendor/golang.org/x/sys/windows/dll_windows.go
+++ b/vendor/golang.org/x/sys/windows/dll_windows.go
@@ -43,8 +43,8 @@ type DLL struct {
// LoadDLL loads DLL file into memory.
//
// Warning: using LoadDLL without an absolute path name is subject to
-// DLL preloading attacks. To safely load a system DLL, use LazyDLL
-// with System set to true, or use LoadLibraryEx directly.
+// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL],
+// or use [LoadLibraryEx] directly.
func LoadDLL(name string) (dll *DLL, err error) {
namep, err := UTF16PtrFromString(name)
if err != nil {
@@ -271,6 +271,9 @@ func (d *LazyDLL) NewProc(name string) *LazyProc {
}
// NewLazyDLL creates new LazyDLL associated with DLL file.
+//
+// Warning: using NewLazyDLL without an absolute path name is subject to
+// DLL preloading attacks. To safely load a system DLL, use [NewLazySystemDLL].
func NewLazyDLL(name string) *LazyDLL {
return &LazyDLL{Name: name}
}
@@ -410,7 +413,3 @@ func loadLibraryEx(name string, system bool) (*DLL, error) {
}
return &DLL{Name: name, Handle: h}, nil
}
-
-type errString string
-
-func (s errString) Error() string { return string(s) }
diff --git a/vendor/golang.org/x/tools/LICENSE b/vendor/golang.org/x/tools/LICENSE
new file mode 100644
index 0000000..2a7cf70
--- /dev/null
+++ b/vendor/golang.org/x/tools/LICENSE
@@ -0,0 +1,27 @@
+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
new file mode 100644
index 0000000..7330990
--- /dev/null
+++ b/vendor/golang.org/x/tools/PATENTS
@@ -0,0 +1,22 @@
+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
new file mode 100644
index 0000000..65fe262
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/gcexportdata/gcexportdata.go
@@ -0,0 +1,239 @@
+// 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
new file mode 100644
index 0000000..37a7247
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/gcexportdata/importer.go
@@ -0,0 +1,75 @@
+// 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
new file mode 100644
index 0000000..f1931d1
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/doc.go
@@ -0,0 +1,251 @@
+// 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
new file mode 100644
index 0000000..91bd62e
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/external.go
@@ -0,0 +1,153 @@
+// 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
new file mode 100644
index 0000000..870271e
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/golist.go
@@ -0,0 +1,1081 @@
+// 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
+ 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,
+ 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")
+ }
+ 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
new file mode 100644
index 0000000..d823c47
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/golist_overlay.go
@@ -0,0 +1,83 @@
+// 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
new file mode 100644
index 0000000..969da4c
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/loadmode_string.go
@@ -0,0 +1,55 @@
+// 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"},
+}
+
+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
new file mode 100644
index 0000000..9dedf97
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/packages.go
@@ -0,0 +1,1564 @@
+// 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
+
+ // 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
+
+ // 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
new file mode 100644
index 0000000..df14ffd
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/packages/visit.go
@@ -0,0 +1,68 @@
+// 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
new file mode 100644
index 0000000..16ed3c1
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/objectpath/objectpath.go
@@ -0,0 +1,817 @@
+// 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
new file mode 100644
index 0000000..7543803
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/callee.go
@@ -0,0 +1,68 @@
+// 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
new file mode 100644
index 0000000..b81ce0c
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/imports.go
@@ -0,0 +1,30 @@
+// 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
new file mode 100644
index 0000000..8d824f7
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/map.go
@@ -0,0 +1,517 @@
+// 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 mapping from types.Type to any values.
+package typeutil // import "golang.org/x/tools/go/types/typeutil"
+
+import (
+ "bytes"
+ "fmt"
+ "go/types"
+ "reflect"
+
+ "golang.org/x/tools/internal/typeparams"
+)
+
+// Map is a hash-table-based mapping from types (types.Type) to
+// arbitrary any 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.
+//
+// Not thread-safe.
+type Map struct {
+ hasher Hasher // shared by many Maps
+ 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 sets the hasher used by Map.
+//
+// All Hashers are functionally equivalent but contain internal state
+// used to cache the results of hashing previously seen types.
+//
+// A single Hasher created by MakeHasher() may be shared among many
+// Maps. This is recommended if the instances have many keys in
+// common, as it will amortize the cost of hash computation.
+//
+// A Hasher may grow without bound as new types are seen. Even when a
+// type is deleted from the map, the Hasher never shrinks, since other
+// types in the map may reference the deleted type indirectly.
+//
+// Hashers are not thread-safe, and read-only operations such as
+// Map.Lookup require updates to the hasher, so a full Mutex lock (not a
+// read-lock) is require around all Map operations if a shared
+// hasher is accessed from multiple threads.
+//
+// If SetHasher is not called, the Map will create a private hasher at
+// the first call to Insert.
+func (m *Map) SetHasher(hasher Hasher) {
+ m.hasher = 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 := m.hasher.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[m.hasher.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 := m.hasher.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 {
+ if m.hasher.memo == nil {
+ m.hasher = MakeHasher()
+ }
+ hash := m.hasher.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
+
+// A Hasher maps each type to its hash value.
+// For efficiency, a hasher uses memoization; thus its memory
+// footprint grows monotonically over time.
+// Hashers are not thread-safe.
+// Hashers have reference semantics.
+// Call MakeHasher to create a Hasher.
+type Hasher struct {
+ memo map[types.Type]uint32
+
+ // ptrMap records pointer identity.
+ ptrMap map[any]uint32
+
+ // sigTParams holds type parameters from the signature being hashed.
+ // Signatures are considered identical modulo renaming of type parameters, so
+ // within the scope of a signature type the identity of the signature's type
+ // parameters is just their index.
+ //
+ // Since the language does not currently support referring to uninstantiated
+ // generic types or functions, and instantiated signatures do not have type
+ // parameter lists, we should never encounter a second non-empty type
+ // parameter list when hashing a generic signature.
+ sigTParams *types.TypeParamList
+}
+
+// MakeHasher returns a new Hasher instance.
+func MakeHasher() Hasher {
+ return Hasher{
+ memo: make(map[types.Type]uint32),
+ ptrMap: make(map[any]uint32),
+ sigTParams: nil,
+ }
+}
+
+// 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 {
+ hash, ok := h.memo[t]
+ if !ok {
+ hash = h.hashFor(t)
+ h.memo[t] = hash
+ }
+ return hash
+}
+
+// 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
+}
+
+// hashFor computes the hash of t.
+func (h Hasher) hashFor(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
+ }
+
+ // Use a separate hasher for types inside of the signature, where type
+ // parameter identity is modified to be (index, constraint). We must use a
+ // new memo for this hasher as type identity may be affected by this
+ // masking. For example, in func[T any](*T), the identity of *T depends on
+ // whether we are mapping the argument in isolation, or recursively as part
+ // of hashing the signature.
+ //
+ // We should never encounter a generic signature while hashing another
+ // generic signature, but defensively set sigTParams only if h.mask is
+ // unset.
+ tparams := t.TypeParams()
+ if h.sigTParams == nil && tparams.Len() != 0 {
+ h = Hasher{
+ // There may be something more efficient than discarding the existing
+ // memo, but it would require detecting whether types are 'tainted' by
+ // references to type parameters.
+ memo: make(map[types.Type]uint32),
+ // Re-using ptrMap ensures that pointer identity is preserved in this
+ // hasher.
+ ptrMap: h.ptrMap,
+ sigTParams: tparams,
+ }
+ }
+
+ for i := 0; i < tparams.Len(); i++ {
+ 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.hashPtr(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 := 0; i < n; i++ {
+ 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 a hash of the type parameter t, with a hash value
+// depending on whether t is contained in h.sigTParams.
+//
+// If h.sigTParams is set and contains t, then we are in the process of hashing
+// a signature, and the hash value of t must depend only on t's index and
+// constraint: signatures are considered identical modulo type parameter
+// renaming. To avoid infinite recursion, we only hash the type parameter
+// index, and rely on types.Identical to handle signatures where constraints
+// are not identical.
+//
+// Otherwise the hash of t depends only on t's pointer identity.
+func (h Hasher) hashTypeParam(t *types.TypeParam) uint32 {
+ if h.sigTParams != nil {
+ i := t.Index()
+ if i >= 0 && i < h.sigTParams.Len() && t == h.sigTParams.At(i) {
+ return 9173 + 3*uint32(i)
+ }
+ }
+ return h.hashPtr(t.Obj())
+}
+
+// hashPtr hashes the pointer identity of ptr. It uses h.ptrMap to ensure that
+// pointers values are not dependent on the GC.
+func (h Hasher) hashPtr(ptr any) uint32 {
+ if hash, ok := h.ptrMap[ptr]; ok {
+ return hash
+ }
+ hash := uint32(reflect.ValueOf(ptr).Pointer())
+ h.ptrMap[ptr] = hash
+ return hash
+}
+
+// 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 := 0; i < n; i++ {
+ 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.hashPtr(t.Obj())
+
+ case *types.TypeParam:
+ return h.hashPtr(t.Obj())
+ }
+ 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
new file mode 100644
index 0000000..f766602
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/methodsetcache.go
@@ -0,0 +1,71 @@
+// 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
new file mode 100644
index 0000000..9dda6a2
--- /dev/null
+++ b/vendor/golang.org/x/tools/go/types/typeutil/ui.go
@@ -0,0 +1,53 @@
+// 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
new file mode 100644
index 0000000..b9425f5
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/aliases/aliases.go
@@ -0,0 +1,38 @@
+// 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
new file mode 100644
index 0000000..7716a33
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/aliases/aliases_go122.go
@@ -0,0 +1,80 @@
+// 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
new file mode 100644
index 0000000..a6cf0e6
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/core/event.go
@@ -0,0 +1,85 @@
+// 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
new file mode 100644
index 0000000..05f3a9a
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/core/export.go
@@ -0,0 +1,70 @@
+// 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
new file mode 100644
index 0000000..06c1d46
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/core/fast.go
@@ -0,0 +1,77 @@
+// 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
new file mode 100644
index 0000000..5dc6e6b
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/doc.go
@@ -0,0 +1,7 @@
+// 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
new file mode 100644
index 0000000..4d55e57
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/event.go
@@ -0,0 +1,127 @@
+// 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
new file mode 100644
index 0000000..a02206e
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/keys/keys.go
@@ -0,0 +1,564 @@
+// 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
new file mode 100644
index 0000000..7e95866
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/keys/standard.go
@@ -0,0 +1,22 @@
+// 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
new file mode 100644
index 0000000..c0e8e73
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/keys/util.go
@@ -0,0 +1,21 @@
+// 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
new file mode 100644
index 0000000..0f526e1
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/event/label/label.go
@@ -0,0 +1,215 @@
+// 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
new file mode 100644
index 0000000..d79a605
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/bimport.go
@@ -0,0 +1,89 @@
+// 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
new file mode 100644
index 0000000..6f5d8a2
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/exportdata.go
@@ -0,0 +1,116 @@
+// 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 copy of $GOROOT/src/go/internal/gcimporter/exportdata.go.
+
+// This file implements FindExportData.
+
+package gcimporter
+
+import (
+ "bufio"
+ "fmt"
+ "io"
+ "strconv"
+ "strings"
+)
+
+func readGopackHeader(r *bufio.Reader) (name string, size int64, err error) {
+ // See $GOROOT/include/ar.h.
+ hdr := make([]byte, 16+12+6+6+8+10+2)
+ _, err = io.ReadFull(r, hdr)
+ if err != nil {
+ return
+ }
+ // leave for debugging
+ if false {
+ fmt.Printf("header: %s", hdr)
+ }
+ s := strings.TrimSpace(string(hdr[16+12+6+6+8:][:10]))
+ length, err := strconv.Atoi(s)
+ size = int64(length)
+ if err != nil || hdr[len(hdr)-2] != '`' || hdr[len(hdr)-1] != '\n' {
+ err = fmt.Errorf("invalid archive header")
+ return
+ }
+ name = strings.TrimSpace(string(hdr[:16]))
+ return
+}
+
+// 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.
+// The size result is 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) {
+ // 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
+ }
+
+ // Archive file. Scan to __.PKGDEF.
+ var name string
+ if name, size, err = readGopackHeader(r); err != nil {
+ return
+ }
+ arsize := size
+
+ // First entry should be __.PKGDEF.
+ if name != "__.PKGDEF" {
+ err = fmt.Errorf("go archive is missing __.PKGDEF")
+ return
+ }
+
+ // Read first line of __.PKGDEF data, so that line
+ // is once again the first line of the input.
+ if line, err = r.ReadSlice('\n'); err != nil {
+ err = fmt.Errorf("can't find export data (%v)", err)
+ return
+ }
+ size -= int64(len(line))
+
+ // Now at __.PKGDEF in archive or still at beginning of file.
+ // Either way, line should begin with "go object ".
+ if !strings.HasPrefix(string(line), "go object ") {
+ err = fmt.Errorf("not a Go object file")
+ return
+ }
+
+ // Skip over object headers to get to the export data section header "$$B\n".
+ // Object headers are lines that do not start with '$'.
+ for line[0] != '$' {
+ if line, err = r.ReadSlice('\n'); err != nil {
+ err = fmt.Errorf("can't find export data (%v)", err)
+ return
+ }
+ size -= int64(len(line))
+ }
+
+ // Check for the binary export data section header "$$B\n".
+ hdr := string(line)
+ if hdr != "$$B\n" {
+ err = fmt.Errorf("unknown export data header: %q", hdr)
+ return
+ }
+ // TODO(taking): Remove end-of-section marker "\n$$\n" from size.
+
+ 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
+}
diff --git a/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go
new file mode 100644
index 0000000..dbbca86
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/gcimporter.go
@@ -0,0 +1,265 @@
+// 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"
+ "bytes"
+ "fmt"
+ "go/build"
+ "go/token"
+ "go/types"
+ "io"
+ "os"
+ "os/exec"
+ "path/filepath"
+ "strings"
+ "sync"
+)
+
+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
+)
+
+var exportMap sync.Map // package dir → func() (string, bool)
+
+// 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.)
+func lookupGorootExport(pkgDir string) (string, bool) {
+ f, ok := exportMap.Load(pkgDir)
+ if !ok {
+ var (
+ listOnce sync.Once
+ exportPath string
+ )
+ f, _ = exportMap.LoadOrStore(pkgDir, func() (string, bool) {
+ listOnce.Do(func() {
+ cmd := exec.Command("go", "list", "-export", "-f", "{{.Export}}", pkgDir)
+ cmd.Dir = build.Default.GOROOT
+ var output []byte
+ output, err := cmd.Output()
+ if err != nil {
+ return
+ }
+
+ exports := strings.Split(string(bytes.TrimSpace(output)), "\n")
+ if len(exports) != 1 {
+ return
+ }
+
+ exportPath = exports[0]
+ })
+
+ return exportPath, exportPath != ""
+ })
+ }
+
+ return f.(func() (string, bool))()
+}
+
+var pkgExts = [...]string{".a", ".o"}
+
+// 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.
+// If no file was found, an empty filename is returned.
+func FindPkg(path, srcDir string) (filename, id string) {
+ if path == "" {
+ return
+ }
+
+ 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
+ }
+ bp, _ := build.Import(path, srcDir, build.FindOnly|build.AllowBinary)
+ if bp.PkgObj == "" {
+ var ok bool
+ if bp.Goroot && bp.Dir != "" {
+ filename, ok = lookupGorootExport(bp.Dir)
+ }
+ if !ok {
+ id = path // make sure we have an id to print in error message
+ return
+ }
+ } 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)
+ }
+ }
+
+ if filename != "" {
+ if f, err := os.Stat(filename); err == nil && !f.IsDir() {
+ return
+ }
+ }
+
+ // try extensions
+ for _, ext := range pkgExts {
+ filename = noext + ext
+ if f, err := os.Stat(filename); err == nil && !f.IsDir() {
+ return
+ }
+ }
+
+ filename = "" // not found
+ return
+}
+
+// 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.
+//
+// TODO(taking): Import is only used in tests. Move to gcimporter_test.
+func Import(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 filename, 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 {
+ filename, id = FindPkg(path, srcDir)
+ if filename == "" {
+ if path == "unsafe" {
+ return types.Unsafe, nil
+ }
+ return nil, fmt.Errorf("can't find import: %q", id)
+ }
+
+ // 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()
+
+ var size int64
+ buf := bufio.NewReader(rc)
+ if size, err = FindExportData(buf); err != nil {
+ return
+ }
+
+ var data []byte
+ data, err = io.ReadAll(buf)
+ if err != nil {
+ return
+ }
+ if len(data) == 0 {
+ return nil, fmt.Errorf("no data to load a package from for path %s", id)
+ }
+
+ // TODO(gri): allow clients of go/importer to provide a FileSet.
+ // Or, define a new standard go/types/gcexportdata package.
+ fset := token.NewFileSet()
+
+ // Select appropriate importer.
+ switch data[0] {
+ case 'v', 'c', 'd':
+ // binary: emitted by cmd/compile till go1.10; obsolete.
+ return nil, fmt.Errorf("binary (%c) import format is no longer supported", data[0])
+
+ case 'i':
+ // indexed: emitted by cmd/compile till go1.19;
+ // now used only for serializing go/types.
+ // See https://github.com/golang/go/issues/69491.
+ _, pkg, err := IImportData(fset, packages, data[1:], id)
+ return pkg, err
+
+ case 'u':
+ // unified: emitted by cmd/compile since go1.20.
+ _, pkg, err := UImportData(fset, packages, data[1:size], id)
+ 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]), id)
+ }
+}
+
+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/iexport.go b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go
new file mode 100644
index 0000000..7dfc31a
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/iexport.go
@@ -0,0 +1,1588 @@
+// 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
new file mode 100644
index 0000000..e260c0e
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport.go
@@ -0,0 +1,1113 @@
+// 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.
+
+// This file is a copy of $GOROOT/src/go/internal/gcimporter/iimport.go.
+
+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
+}
diff --git a/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go
new file mode 100644
index 0000000..7586bfa
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/iimport_go122.go
@@ -0,0 +1,53 @@
+// 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
new file mode 100644
index 0000000..907c855
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/predeclared.go
@@ -0,0 +1,91 @@
+// 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/ureader_yes.go b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go
new file mode 100644
index 0000000..1db4086
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gcimporter/ureader_yes.go
@@ -0,0 +1,754 @@
+// 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"
+ "strings"
+
+ "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)
+ s = s[:strings.LastIndex(s, "\n$$\n")]
+ 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 {
+ case "":
+ 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
new file mode 100644
index 0000000..e333efc
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gocommand/invoke.go
@@ -0,0 +1,551 @@
+// 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
new file mode 100644
index 0000000..e38d1fb
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gocommand/vendor.go
@@ -0,0 +1,163 @@
+// 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
new file mode 100644
index 0000000..446c584
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/gocommand/version.go
@@ -0,0 +1,71 @@
+// 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
new file mode 100644
index 0000000..66e69b4
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/packagesinternal/packages.go
@@ -0,0 +1,20 @@
+// 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
new file mode 100644
index 0000000..f0cabde
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/codes.go
@@ -0,0 +1,77 @@
+// 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
new file mode 100644
index 0000000..f6cb37c
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/decoder.go
@@ -0,0 +1,519 @@
+// 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
new file mode 100644
index 0000000..c8a2796
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/doc.go
@@ -0,0 +1,32 @@
+// 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
new file mode 100644
index 0000000..c17a123
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/encoder.go
@@ -0,0 +1,392 @@
+// 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
new file mode 100644
index 0000000..6542227
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/flags.go
@@ -0,0 +1,9 @@
+// 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
new file mode 100644
index 0000000..fcdfb97
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/reloc.go
@@ -0,0 +1,42 @@
+// 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
new file mode 100644
index 0000000..50534a2
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/support.go
@@ -0,0 +1,17 @@
+// 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
new file mode 100644
index 0000000..1520b73
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/sync.go
@@ -0,0 +1,136 @@
+// 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
new file mode 100644
index 0000000..582ad56
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/syncmarker_string.go
@@ -0,0 +1,92 @@
+// 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
new file mode 100644
index 0000000..53af9df
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/pkgbits/version.go
@@ -0,0 +1,85 @@
+// 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
new file mode 100644
index 0000000..cdaac9a
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/stdlib/manifest.go
@@ -0,0 +1,17431 @@
+// 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},
+ {"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},
+ {"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},
+ {"SplitN", Func, 0},
+ {"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},
+ {"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/hmac": {
+ {"Equal", Func, 1},
+ {"New", Func, 0},
+ },
+ "crypto/md5": {
+ {"BlockSize", Const, 0},
+ {"New", Func, 0},
+ {"Size", Const, 0},
+ {"Sum", Func, 2},
+ },
+ "crypto/rand": {
+ {"Int", Func, 0},
+ {"Prime", Func, 0},
+ {"Read", Func, 0},
+ {"Reader", Var, 0},
+ },
+ "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/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},
+ {"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.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.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},
+ {"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},
+ {"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).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.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.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.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},
+ {"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},
+ {"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.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).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},
+ {"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},
+ {"Type", Type, 0},
+ {"Version", Type, 0},
+ },
+ "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": {
+ {"BinaryMarshaler", Type, 2},
+ {"BinaryUnmarshaler", Type, 2},
+ {"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).Empty", Method, 5},
+ {"(*Interface).ExplicitMethod", Method, 5},
+ {"(*Interface).IsComparable", Method, 18},
+ {"(*Interface).IsImplicit", Method, 18},
+ {"(*Interface).IsMethodSet", Method, 18},
+ {"(*Interface).MarkImplicit", Method, 18},
+ {"(*Interface).Method", Method, 5},
+ {"(*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).String", Method, 5},
+ {"(*Named).AddMethod", Method, 5},
+ {"(*Named).Method", Method, 5},
+ {"(*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).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).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},
+ {"(*TypeList).At", Method, 18},
+ {"(*TypeList).Len", Method, 18},
+ {"(*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},
+ {"(*Union).Len", Method, 18},
+ {"(*Union).String", Method, 18},
+ {"(*Union).Term", Method, 18},
+ {"(*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},
+ {"Hash", Type, 14},
+ {"MakeSeed", Func, 14},
+ {"Seed", Type, 14},
+ {"String", Func, 19},
+ },
+ "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).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).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},
+ {"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).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).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).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).MarshalBinary", Method, 22},
+ {"(*ChaCha8).Read", Method, 23},
+ {"(*ChaCha8).Seed", Method, 22},
+ {"(*ChaCha8).Uint64", Method, 22},
+ {"(*ChaCha8).UnmarshalBinary", Method, 22},
+ {"(*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).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},
+ {"(*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},
+ {"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},
+ {"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},
+ {"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.Handler", Field, 0},
+ {"Server.IdleTimeout", Field, 8},
+ {"Server.MaxHeaderBytes", Field, 0},
+ {"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.IdleConnTimeout", Field, 7},
+ {"Transport.MaxConnsPerHost", Field, 11},
+ {"Transport.MaxIdleConns", Field, 7},
+ {"Transport.MaxIdleConnsPerHost", Field, 0},
+ {"Transport.MaxResponseHeaderBytes", Field, 7},
+ {"Transport.OnProxyConnectResponse", Field, 20},
+ {"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).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).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).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).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},
+ {"(*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},
+ {"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},
+ {"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).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},
+ {"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},
+ {"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},
+ {"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},
+ {"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},
+ {"SplitN", Func, 0},
+ {"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).Cleanup", Method, 14},
+ {"(*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).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).Cleanup", Method, 18},
+ {"(*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).Cleanup", Method, 14},
+ {"(*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).AppendFormat", Method, 5},
+ {"(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},
+ },
+}
diff --git a/vendor/golang.org/x/tools/internal/stdlib/stdlib.go b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
new file mode 100644
index 0000000..9890401
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/stdlib/stdlib.go
@@ -0,0 +1,97 @@
+// 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
new file mode 100644
index 0000000..0b84acc
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/common.go
@@ -0,0 +1,140 @@
+// 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
+}
+
+// GenericAssignableTo is a generalization of types.AssignableTo that
+// implements the following rule for uninstantiated generic types:
+//
+// If V and T are generic named types, then V is considered assignable to T if,
+// for every possible instantiation of V[A_1, ..., A_N], the instantiation
+// T[A_1, ..., A_N] is valid and V[A_1, ..., A_N] implements T[A_1, ..., A_N].
+//
+// If T has structural constraints, they must be satisfied by V.
+//
+// For example, consider the following type declarations:
+//
+// type Interface[T any] interface {
+// Accept(T)
+// }
+//
+// type Container[T any] struct {
+// Element T
+// }
+//
+// func (c Container[T]) Accept(t T) { c.Element = t }
+//
+// In this case, GenericAssignableTo reports that instantiations of Container
+// are assignable to the corresponding instantiation of Interface.
+func GenericAssignableTo(ctxt *types.Context, V, T types.Type) bool {
+ V = types.Unalias(V)
+ T = types.Unalias(T)
+
+ // If V and T are not both named, or do not have matching non-empty type
+ // parameter lists, fall back on types.AssignableTo.
+
+ VN, Vnamed := V.(*types.Named)
+ TN, Tnamed := T.(*types.Named)
+ if !Vnamed || !Tnamed {
+ return types.AssignableTo(V, T)
+ }
+
+ vtparams := VN.TypeParams()
+ ttparams := TN.TypeParams()
+ if vtparams.Len() == 0 || vtparams.Len() != ttparams.Len() || VN.TypeArgs().Len() != 0 || TN.TypeArgs().Len() != 0 {
+ return types.AssignableTo(V, T)
+ }
+
+ // V and T have the same (non-zero) number of type params. Instantiate both
+ // with the type parameters of V. This must always succeed for V, and will
+ // succeed for T if and only if the type set of each type parameter of V is a
+ // subset of the type set of the corresponding type parameter of T, meaning
+ // that every instantiation of V corresponds to a valid instantiation of T.
+
+ // Minor optimization: ensure we share a context across the two
+ // instantiations below.
+ if ctxt == nil {
+ ctxt = types.NewContext()
+ }
+
+ var targs []types.Type
+ for i := 0; i < vtparams.Len(); i++ {
+ targs = append(targs, vtparams.At(i))
+ }
+
+ vinst, err := types.Instantiate(ctxt, V, targs, true)
+ if err != nil {
+ panic("type parameters should satisfy their own constraints")
+ }
+
+ tinst, err := types.Instantiate(ctxt, T, targs, true)
+ if err != nil {
+ return false
+ }
+
+ return types.AssignableTo(vinst, tinst)
+}
diff --git a/vendor/golang.org/x/tools/internal/typeparams/coretype.go b/vendor/golang.org/x/tools/internal/typeparams/coretype.go
new file mode 100644
index 0000000..6e83c6f
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/coretype.go
@@ -0,0 +1,150 @@
+// 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
new file mode 100644
index 0000000..0ade5c2
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/free.go
@@ -0,0 +1,131 @@
+// 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
new file mode 100644
index 0000000..93c80fd
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/normalize.go
@@ -0,0 +1,218 @@
+// 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
new file mode 100644
index 0000000..cbd12f8
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/termlist.go
@@ -0,0 +1,163 @@
+// 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
new file mode 100644
index 0000000..7350bb7
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typeparams/typeterm.go
@@ -0,0 +1,169 @@
+// 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
new file mode 100644
index 0000000..4957f02
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/element.go
@@ -0,0 +1,133 @@
+// 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
new file mode 100644
index 0000000..131caab
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode.go
@@ -0,0 +1,1560 @@
+// 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
new file mode 100644
index 0000000..15ecf7c
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/errorcode_string.go
@@ -0,0 +1,179 @@
+// 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/recv.go b/vendor/golang.org/x/tools/internal/typesinternal/recv.go
new file mode 100644
index 0000000..ba6f4f4
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/recv.go
@@ -0,0 +1,41 @@
+// 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.
+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
new file mode 100644
index 0000000..cc86487
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/toonew.go
@@ -0,0 +1,89 @@
+// 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
new file mode 100644
index 0000000..df3ea52
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/types.go
@@ -0,0 +1,121 @@
+// 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
+}
+
+// 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
new file mode 100644
index 0000000..1066980
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/typesinternal/zerovalue.go
@@ -0,0 +1,282 @@
+// 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"
+ "strconv"
+ "strings"
+)
+
+// ZeroString returns the string representation of the "zero" value of the type t.
+// This string can be used on the right-hand side of an assignment where the
+// left-hand side has that explicit type.
+// Exception: This does not apply to tuples. Their string representation is
+// informational only and cannot be used in an assignment.
+// When assigning to a wider type (such as 'any'), it's the caller's
+// responsibility to handle any necessary type conversions.
+// See [ZeroExpr] for a variant that returns an [ast.Expr].
+func ZeroString(t types.Type, qf types.Qualifier) string {
+ switch t := t.(type) {
+ case *types.Basic:
+ switch {
+ case t.Info()&types.IsBoolean != 0:
+ return "false"
+ case t.Info()&types.IsNumeric != 0:
+ return "0"
+ case t.Info()&types.IsString != 0:
+ return `""`
+ case t.Kind() == types.UnsafePointer:
+ fallthrough
+ case t.Kind() == types.UntypedNil:
+ return "nil"
+ default:
+ panic(fmt.Sprint("ZeroString for unexpected type:", t))
+ }
+
+ case *types.Pointer, *types.Slice, *types.Interface, *types.Chan, *types.Map, *types.Signature:
+ return "nil"
+
+ case *types.Named, *types.Alias:
+ switch under := t.Underlying().(type) {
+ case *types.Struct, *types.Array:
+ return types.TypeString(t, qf) + "{}"
+ default:
+ return ZeroString(under, qf)
+ }
+
+ case *types.Array, *types.Struct:
+ return types.TypeString(t, qf) + "{}"
+
+ case *types.TypeParam:
+ // Assumes func new is not shadowed.
+ return "*new(" + types.TypeString(t, qf) + ")"
+
+ case *types.Tuple:
+ // Tuples are not normal values.
+ // We are currently format as "(t[0], ..., t[n])". Could be something else.
+ components := make([]string, t.Len())
+ for i := 0; i < t.Len(); i++ {
+ components[i] = ZeroString(t.At(i).Type(), qf)
+ }
+ return "(" + strings.Join(components, ", ") + ")"
+
+ 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 of the type t.
+// ZeroExpr is defined for types that are suitable for variables.
+// It may panic for other types such as Tuple or Union.
+// See [ZeroString] for a variant that returns a string.
+func ZeroExpr(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr {
+ switch t := typ.(type) {
+ case *types.Basic:
+ switch {
+ case t.Info()&types.IsBoolean != 0:
+ return &ast.Ident{Name: "false"}
+ case t.Info()&types.IsNumeric != 0:
+ return &ast.BasicLit{Kind: token.INT, Value: "0"}
+ case t.Info()&types.IsString != 0:
+ return &ast.BasicLit{Kind: token.STRING, Value: `""`}
+ case t.Kind() == types.UnsafePointer:
+ fallthrough
+ case t.Kind() == types.UntypedNil:
+ return ast.NewIdent("nil")
+ default:
+ panic(fmt.Sprint("ZeroExpr for unexpected type:", t))
+ }
+
+ case *types.Pointer, *types.Slice, *types.Interface, *types.Chan, *types.Map, *types.Signature:
+ return ast.NewIdent("nil")
+
+ case *types.Named, *types.Alias:
+ switch under := t.Underlying().(type) {
+ case *types.Struct, *types.Array:
+ return &ast.CompositeLit{
+ Type: TypeExpr(f, pkg, typ),
+ }
+ default:
+ return ZeroExpr(f, pkg, under)
+ }
+
+ case *types.Array, *types.Struct:
+ return &ast.CompositeLit{
+ Type: TypeExpr(f, pkg, typ),
+ }
+
+ 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()),
+ },
+ },
+ }
+
+ 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
+// from packages other than pkg are qualified by an appropriate package name, as
+// defined by the import environment of file.
+// It may panic for types such as Tuple or Union.
+func TypeExpr(f *ast.File, pkg *types.Package, typ types.Type) ast.Expr {
+ switch t := typ.(type) {
+ case *types.Basic:
+ switch t.Kind() {
+ case types.UnsafePointer:
+ // TODO(hxjiang): replace the implementation with types.Qualifier.
+ return &ast.SelectorExpr{X: ast.NewIdent("unsafe"), Sel: ast.NewIdent("Pointer")}
+ default:
+ return ast.NewIdent(t.Name())
+ }
+
+ case *types.Pointer:
+ return &ast.UnaryExpr{
+ Op: token.MUL,
+ X: TypeExpr(f, pkg, t.Elem()),
+ }
+
+ case *types.Array:
+ return &ast.ArrayType{
+ Len: &ast.BasicLit{
+ Kind: token.INT,
+ Value: fmt.Sprintf("%d", t.Len()),
+ },
+ Elt: TypeExpr(f, pkg, t.Elem()),
+ }
+
+ case *types.Slice:
+ return &ast.ArrayType{
+ Elt: TypeExpr(f, pkg, t.Elem()),
+ }
+
+ case *types.Map:
+ return &ast.MapType{
+ Key: TypeExpr(f, pkg, t.Key()),
+ Value: TypeExpr(f, pkg, t.Elem()),
+ }
+
+ 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(f, pkg, t.Elem()),
+ }
+
+ case *types.Signature:
+ var params []*ast.Field
+ for i := 0; i < t.Params().Len(); i++ {
+ params = append(params, &ast.Field{
+ Type: TypeExpr(f, pkg, t.Params().At(i).Type()),
+ 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(f, pkg, t.Results().At(i).Type()),
+ })
+ }
+ return &ast.FuncType{
+ Params: &ast.FieldList{
+ List: params,
+ },
+ Results: &ast.FieldList{
+ List: returns,
+ },
+ }
+
+ case interface{ Obj() *types.TypeName }: // *types.{Alias,Named,TypeParam}
+ switch t.Obj().Pkg() {
+ case pkg, nil:
+ return ast.NewIdent(t.Obj().Name())
+ }
+ pkgName := t.Obj().Pkg().Name()
+
+ // TODO(hxjiang): replace the implementation with types.Qualifier.
+ // If the file already imports the package under another name, use that.
+ for _, cand := range f.Imports {
+ if path, _ := strconv.Unquote(cand.Path.Value); path == t.Obj().Pkg().Path() {
+ if cand.Name != nil && cand.Name.Name != "" {
+ pkgName = cand.Name.Name
+ }
+ }
+ }
+ if pkgName == "." {
+ return ast.NewIdent(t.Obj().Name())
+ }
+ return &ast.SelectorExpr{
+ X: ast.NewIdent(pkgName),
+ Sel: ast.NewIdent(t.Obj().Name()),
+ }
+
+ case *types.Struct:
+ return ast.NewIdent(t.String())
+
+ case *types.Interface:
+ return ast.NewIdent(t.String())
+
+ case *types.Union:
+ // TODO(hxjiang): handle the union through syntax (~A | ... | ~Z).
+ // Remove nil check when calling typesinternal.TypeExpr.
+ return nil
+
+ 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
new file mode 100644
index 0000000..b53f178
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/versions/features.go
@@ -0,0 +1,43 @@
+// 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
new file mode 100644
index 0000000..bbabcd2
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/versions/gover.go
@@ -0,0 +1,172 @@
+// 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
new file mode 100644
index 0000000..0fc10ce
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/versions/types.go
@@ -0,0 +1,33 @@
+// 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
new file mode 100644
index 0000000..8d1f745
--- /dev/null
+++ b/vendor/golang.org/x/tools/internal/versions/versions.go
@@ -0,0 +1,57 @@
+// 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/modules.txt b/vendor/modules.txt
index 1e98656..aaaaa88 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -135,16 +135,16 @@ 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.0
-## explicit; go 1.20
+# github.com/go-git/go-billy/v5 v5.6.1
+## explicit; go 1.21
github.com/go-git/go-billy/v5
github.com/go-git/go-billy/v5/helper/chroot
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.12.0
-## explicit; go 1.19
+# github.com/go-git/go-git/v5 v5.13.1
+## explicit; go 1.21
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
@@ -268,6 +268,21 @@ github.com/mgutz/ansi
# github.com/mitchellh/colorstring v0.0.0-20190213212951-d06e56a500db
## explicit
github.com/mitchellh/colorstring
+# 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/muesli/reflow v0.3.0
## explicit; go 1.13
github.com/muesli/reflow/ansi
@@ -278,8 +293,8 @@ github.com/muesli/termenv
# github.com/neilotoole/jsoncolor v0.7.1
## explicit; go 1.16
github.com/neilotoole/jsoncolor
-# github.com/pjbgf/sha1cd v0.3.0
-## explicit; go 1.19
+# github.com/pjbgf/sha1cd v0.3.1
+## explicit; go 1.21
github.com/pjbgf/sha1cd
github.com/pjbgf/sha1cd/internal
github.com/pjbgf/sha1cd/ubc
@@ -314,7 +329,7 @@ github.com/spf13/pflag
## explicit; go 1.17
github.com/stretchr/testify/assert
github.com/stretchr/testify/assert/yaml
-# github.com/thlib/go-timezone-local v0.0.4
+# github.com/thlib/go-timezone-local v0.0.6
## explicit; go 1.16
github.com/thlib/go-timezone-local/tzlocal
# github.com/ulikunitz/xz v0.5.12
@@ -332,7 +347,7 @@ github.com/xanzy/ssh-agent
# github.com/ztrue/tracerr v0.4.0
## explicit
github.com/ztrue/tracerr
-# golang.org/x/crypto v0.31.0
+# golang.org/x/crypto v0.32.0
## explicit; go 1.20
golang.org/x/crypto/argon2
golang.org/x/crypto/blake2b
@@ -357,16 +372,22 @@ 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/net v0.33.0
+# 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/net/context
golang.org/x/net/internal/socks
golang.org/x/net/proxy
-# golang.org/x/oauth2 v0.24.0
+# golang.org/x/oauth2 v0.25.0
## explicit; go 1.18
golang.org/x/oauth2
golang.org/x/oauth2/internal
-# golang.org/x/sys v0.28.0
+# golang.org/x/sync v0.10.0
+## explicit; go 1.18
+golang.org/x/sync/errgroup
+# golang.org/x/sys v0.29.0
## explicit; go 1.18
golang.org/x/sys/cpu
golang.org/x/sys/execabs
@@ -374,7 +395,7 @@ 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.27.0
+# golang.org/x/term v0.28.0
## explicit; go 1.18
golang.org/x/term
# golang.org/x/text v0.21.0
@@ -389,11 +410,28 @@ golang.org/x/text/runes
golang.org/x/text/transform
golang.org/x/text/unicode/norm
golang.org/x/text/width
-# golang.org/x/time v0.8.0
+# golang.org/x/time v0.9.0
## explicit; go 1.18
golang.org/x/time/rate
# golang.org/x/tools v0.28.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
# gopkg.in/go-playground/assert.v1 v1.2.1
## explicit
# gopkg.in/go-playground/pool.v3 v3.1.1