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