5480 lines · c
1// SPDX-License-Identifier: GPL-2.02/*3 * This file contains instructions for testing by the test titled:4 *5 * "Test x86 instruction decoder - new instructions"6 *7 * Note that the 'Expecting' comment lines are consumed by the8 * gen-insn-x86-dat.awk script and have the format:9 *10 * Expecting: <op> <branch> <rel>11 *12 * If this file is changed, remember to run the gen-insn-x86-dat.sh13 * script and commit the result.14 *15 * Refer to insn-x86.c for more details.16 */17 18int main(void)19{20 /* Following line is a marker for the awk script - do not change */21 asm volatile("rdtsc"); /* Start here */22 23 /* Test fix for vcvtph2ps in x86-opcode-map.txt */24 25 asm volatile("vcvtph2ps %xmm3,%ymm5");26 27#ifdef __x86_64__28 29 /* AVX-512: Instructions with the same op codes as Mask Instructions */30 31 asm volatile("cmovno %rax,%rbx");32 asm volatile("cmovno 0x12345678(%rax),%rcx");33 asm volatile("cmovno 0x12345678(%rax),%cx");34 35 asm volatile("cmove %rax,%rbx");36 asm volatile("cmove 0x12345678(%rax),%rcx");37 asm volatile("cmove 0x12345678(%rax),%cx");38 39 asm volatile("seto 0x12345678(%rax)");40 asm volatile("setno 0x12345678(%rax)");41 asm volatile("setb 0x12345678(%rax)");42 asm volatile("setc 0x12345678(%rax)");43 asm volatile("setnae 0x12345678(%rax)");44 asm volatile("setae 0x12345678(%rax)");45 asm volatile("setnb 0x12345678(%rax)");46 asm volatile("setnc 0x12345678(%rax)");47 asm volatile("sets 0x12345678(%rax)");48 asm volatile("setns 0x12345678(%rax)");49 50 /* AVX-512: Mask Instructions */51 52 asm volatile("kandw %k7,%k6,%k5");53 asm volatile("kandq %k7,%k6,%k5");54 asm volatile("kandb %k7,%k6,%k5");55 asm volatile("kandd %k7,%k6,%k5");56 57 asm volatile("kandnw %k7,%k6,%k5");58 asm volatile("kandnq %k7,%k6,%k5");59 asm volatile("kandnb %k7,%k6,%k5");60 asm volatile("kandnd %k7,%k6,%k5");61 62 asm volatile("knotw %k7,%k6");63 asm volatile("knotq %k7,%k6");64 asm volatile("knotb %k7,%k6");65 asm volatile("knotd %k7,%k6");66 67 asm volatile("korw %k7,%k6,%k5");68 asm volatile("korq %k7,%k6,%k5");69 asm volatile("korb %k7,%k6,%k5");70 asm volatile("kord %k7,%k6,%k5");71 72 asm volatile("kxnorw %k7,%k6,%k5");73 asm volatile("kxnorq %k7,%k6,%k5");74 asm volatile("kxnorb %k7,%k6,%k5");75 asm volatile("kxnord %k7,%k6,%k5");76 77 asm volatile("kxorw %k7,%k6,%k5");78 asm volatile("kxorq %k7,%k6,%k5");79 asm volatile("kxorb %k7,%k6,%k5");80 asm volatile("kxord %k7,%k6,%k5");81 82 asm volatile("kaddw %k7,%k6,%k5");83 asm volatile("kaddq %k7,%k6,%k5");84 asm volatile("kaddb %k7,%k6,%k5");85 asm volatile("kaddd %k7,%k6,%k5");86 87 asm volatile("kunpckbw %k7,%k6,%k5");88 asm volatile("kunpckwd %k7,%k6,%k5");89 asm volatile("kunpckdq %k7,%k6,%k5");90 91 asm volatile("kmovw %k6,%k5");92 asm volatile("kmovw (%rcx),%k5");93 asm volatile("kmovw 0x123(%rax,%r14,8),%k5");94 asm volatile("kmovw %k5,(%rcx)");95 asm volatile("kmovw %k5,0x123(%rax,%r14,8)");96 asm volatile("kmovw %eax,%k5");97 asm volatile("kmovw %ebp,%k5");98 asm volatile("kmovw %r13d,%k5");99 asm volatile("kmovw %k5,%eax");100 asm volatile("kmovw %k5,%ebp");101 asm volatile("kmovw %k5,%r13d");102 103 asm volatile("kmovq %k6,%k5");104 asm volatile("kmovq (%rcx),%k5");105 asm volatile("kmovq 0x123(%rax,%r14,8),%k5");106 asm volatile("kmovq %k5,(%rcx)");107 asm volatile("kmovq %k5,0x123(%rax,%r14,8)");108 asm volatile("kmovq %rax,%k5");109 asm volatile("kmovq %rbp,%k5");110 asm volatile("kmovq %r13,%k5");111 asm volatile("kmovq %k5,%rax");112 asm volatile("kmovq %k5,%rbp");113 asm volatile("kmovq %k5,%r13");114 115 asm volatile("kmovb %k6,%k5");116 asm volatile("kmovb (%rcx),%k5");117 asm volatile("kmovb 0x123(%rax,%r14,8),%k5");118 asm volatile("kmovb %k5,(%rcx)");119 asm volatile("kmovb %k5,0x123(%rax,%r14,8)");120 asm volatile("kmovb %eax,%k5");121 asm volatile("kmovb %ebp,%k5");122 asm volatile("kmovb %r13d,%k5");123 asm volatile("kmovb %k5,%eax");124 asm volatile("kmovb %k5,%ebp");125 asm volatile("kmovb %k5,%r13d");126 127 asm volatile("kmovd %k6,%k5");128 asm volatile("kmovd (%rcx),%k5");129 asm volatile("kmovd 0x123(%rax,%r14,8),%k5");130 asm volatile("kmovd %k5,(%rcx)");131 asm volatile("kmovd %k5,0x123(%rax,%r14,8)");132 asm volatile("kmovd %eax,%k5");133 asm volatile("kmovd %ebp,%k5");134 asm volatile("kmovd %r13d,%k5");135 asm volatile("kmovd %k5,%eax");136 asm volatile("kmovd %k5,%ebp");137 asm volatile("kmovd %k5,%r13d");138 139 asm volatile("kortestw %k6,%k5");140 asm volatile("kortestq %k6,%k5");141 asm volatile("kortestb %k6,%k5");142 asm volatile("kortestd %k6,%k5");143 144 asm volatile("ktestw %k6,%k5");145 asm volatile("ktestq %k6,%k5");146 asm volatile("ktestb %k6,%k5");147 asm volatile("ktestd %k6,%k5");148 149 asm volatile("kshiftrw $0x12,%k6,%k5");150 asm volatile("kshiftrq $0x5b,%k6,%k5");151 asm volatile("kshiftlw $0x12,%k6,%k5");152 asm volatile("kshiftlq $0x5b,%k6,%k5");153 154 /* AVX-512: Op code 0f 5b */155 asm volatile("vcvtdq2ps %xmm5,%xmm6");156 asm volatile("vcvtqq2ps %zmm29,%ymm6{%k7}");157 asm volatile("vcvtps2dq %xmm5,%xmm6");158 asm volatile("vcvttps2dq %xmm5,%xmm6");159 160 /* AVX-512: Op code 0f 6f */161 162 asm volatile("movq %mm0,%mm4");163 asm volatile("vmovdqa %ymm4,%ymm6");164 asm volatile("vmovdqa32 %zmm25,%zmm26");165 asm volatile("vmovdqa64 %zmm25,%zmm26");166 asm volatile("vmovdqu %ymm4,%ymm6");167 asm volatile("vmovdqu32 %zmm29,%zmm30");168 asm volatile("vmovdqu64 %zmm25,%zmm26");169 asm volatile("vmovdqu8 %zmm29,%zmm30");170 asm volatile("vmovdqu16 %zmm25,%zmm26");171 172 /* AVX-512: Op code 0f 78 */173 174 asm volatile("vmread %rax,%rbx");175 asm volatile("vcvttps2udq %zmm25,%zmm26");176 asm volatile("vcvttpd2udq %zmm29,%ymm6{%k7}");177 asm volatile("vcvttsd2usi %xmm6,%rax");178 asm volatile("vcvttss2usi %xmm6,%rax");179 asm volatile("vcvttps2uqq %ymm5,%zmm26{%k7}");180 asm volatile("vcvttpd2uqq %zmm29,%zmm30");181 182 /* AVX-512: Op code 0f 79 */183 184 asm volatile("vmwrite %rax,%rbx");185 asm volatile("vcvtps2udq %zmm25,%zmm26");186 asm volatile("vcvtpd2udq %zmm29,%ymm6{%k7}");187 asm volatile("vcvtsd2usi %xmm6,%rax");188 asm volatile("vcvtss2usi %xmm6,%rax");189 asm volatile("vcvtps2uqq %ymm5,%zmm26{%k7}");190 asm volatile("vcvtpd2uqq %zmm29,%zmm30");191 192 /* AVX-512: Op code 0f 7a */193 194 asm volatile("vcvtudq2pd %ymm5,%zmm29{%k7}");195 asm volatile("vcvtuqq2pd %zmm25,%zmm26");196 asm volatile("vcvtudq2ps %zmm29,%zmm30");197 asm volatile("vcvtuqq2ps %zmm25,%ymm26{%k7}");198 asm volatile("vcvttps2qq %ymm25,%zmm26{%k7}");199 asm volatile("vcvttpd2qq %zmm29,%zmm30");200 201 /* AVX-512: Op code 0f 7b */202 203 asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");204 asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");205 asm volatile("vcvtps2qq %ymm5,%zmm26{%k7}");206 asm volatile("vcvtpd2qq %zmm29,%zmm30");207 208 /* AVX-512: Op code 0f 7f */209 210 asm volatile("movq.s %mm0,%mm4");211 asm volatile("vmovdqa %ymm8,%ymm6");212 asm volatile("vmovdqa32.s %zmm25,%zmm26");213 asm volatile("vmovdqa64.s %zmm25,%zmm26");214 asm volatile("vmovdqu %ymm8,%ymm6");215 asm volatile("vmovdqu32.s %zmm25,%zmm26");216 asm volatile("vmovdqu64.s %zmm25,%zmm26");217 asm volatile("vmovdqu8.s %zmm30,(%rcx)");218 asm volatile("vmovdqu16.s %zmm25,%zmm26");219 220 /* AVX-512: Op code 0f db */221 222 asm volatile("pand %mm1,%mm2");223 asm volatile("pand %xmm1,%xmm2");224 asm volatile("vpand %ymm4,%ymm6,%ymm2");225 asm volatile("vpandd %zmm24,%zmm25,%zmm26");226 asm volatile("vpandq %zmm24,%zmm25,%zmm26");227 228 /* AVX-512: Op code 0f df */229 230 asm volatile("pandn %mm1,%mm2");231 asm volatile("pandn %xmm1,%xmm2");232 asm volatile("vpandn %ymm4,%ymm6,%ymm2");233 asm volatile("vpandnd %zmm24,%zmm25,%zmm26");234 asm volatile("vpandnq %zmm24,%zmm25,%zmm26");235 236 /* AVX-512: Op code 0f e6 */237 238 asm volatile("vcvttpd2dq %xmm1,%xmm2");239 asm volatile("vcvtdq2pd %xmm5,%xmm6");240 asm volatile("vcvtdq2pd %ymm5,%zmm26{%k7}");241 asm volatile("vcvtqq2pd %zmm25,%zmm26");242 asm volatile("vcvtpd2dq %xmm1,%xmm2");243 244 /* AVX-512: Op code 0f eb */245 246 asm volatile("por %mm4,%mm6");247 asm volatile("vpor %ymm4,%ymm6,%ymm2");248 asm volatile("vpord %zmm24,%zmm25,%zmm26");249 asm volatile("vporq %zmm24,%zmm25,%zmm26");250 251 /* AVX-512: Op code 0f ef */252 253 asm volatile("pxor %mm4,%mm6");254 asm volatile("vpxor %ymm4,%ymm6,%ymm2");255 asm volatile("vpxord %zmm24,%zmm25,%zmm26");256 asm volatile("vpxorq %zmm24,%zmm25,%zmm26");257 258 /* AVX-512: Op code 0f 38 10 */259 260 asm volatile("pblendvb %xmm1,%xmm0");261 asm volatile("vpsrlvw %zmm27,%zmm28,%zmm29");262 asm volatile("vpmovuswb %zmm28,%ymm6{%k7}");263 264 /* AVX-512: Op code 0f 38 11 */265 266 asm volatile("vpmovusdb %zmm28,%xmm6{%k7}");267 asm volatile("vpsravw %zmm27,%zmm28,%zmm29");268 269 /* AVX-512: Op code 0f 38 12 */270 271 asm volatile("vpmovusqb %zmm27,%xmm6{%k7}");272 asm volatile("vpsllvw %zmm27,%zmm28,%zmm29");273 274 /* AVX-512: Op code 0f 38 13 */275 276 asm volatile("vcvtph2ps %xmm3,%ymm5");277 asm volatile("vcvtph2ps %ymm5,%zmm27{%k7}");278 asm volatile("vpmovusdw %zmm27,%ymm6{%k7}");279 280 /* AVX-512: Op code 0f 38 14 */281 282 asm volatile("blendvps %xmm1,%xmm0");283 asm volatile("vpmovusqw %zmm27,%xmm6{%k7}");284 asm volatile("vprorvd %zmm27,%zmm28,%zmm29");285 asm volatile("vprorvq %zmm27,%zmm28,%zmm29");286 287 /* AVX-512: Op code 0f 38 15 */288 289 asm volatile("blendvpd %xmm1,%xmm0");290 asm volatile("vpmovusqd %zmm27,%ymm6{%k7}");291 asm volatile("vprolvd %zmm27,%zmm28,%zmm29");292 asm volatile("vprolvq %zmm27,%zmm28,%zmm29");293 294 /* AVX-512: Op code 0f 38 16 */295 296 asm volatile("vpermps %ymm4,%ymm6,%ymm2");297 asm volatile("vpermps %ymm24,%ymm26,%ymm22{%k7}");298 asm volatile("vpermpd %ymm24,%ymm26,%ymm22{%k7}");299 300 /* AVX-512: Op code 0f 38 19 */301 302 asm volatile("vbroadcastsd %xmm4,%ymm6");303 asm volatile("vbroadcastf32x2 %xmm27,%zmm26");304 305 /* AVX-512: Op code 0f 38 1a */306 307 asm volatile("vbroadcastf128 (%rcx),%ymm4");308 asm volatile("vbroadcastf32x4 (%rcx),%zmm26");309 asm volatile("vbroadcastf64x2 (%rcx),%zmm26");310 311 /* AVX-512: Op code 0f 38 1b */312 313 asm volatile("vbroadcastf32x8 (%rcx),%zmm27");314 asm volatile("vbroadcastf64x4 (%rcx),%zmm26");315 316 /* AVX-512: Op code 0f 38 1f */317 318 asm volatile("vpabsq %zmm27,%zmm28");319 320 /* AVX-512: Op code 0f 38 20 */321 322 asm volatile("vpmovsxbw %xmm4,%xmm5");323 asm volatile("vpmovswb %zmm27,%ymm6{%k7}");324 325 /* AVX-512: Op code 0f 38 21 */326 327 asm volatile("vpmovsxbd %xmm4,%ymm6");328 asm volatile("vpmovsdb %zmm27,%xmm6{%k7}");329 330 /* AVX-512: Op code 0f 38 22 */331 332 asm volatile("vpmovsxbq %xmm4,%ymm4");333 asm volatile("vpmovsqb %zmm27,%xmm6{%k7}");334 335 /* AVX-512: Op code 0f 38 23 */336 337 asm volatile("vpmovsxwd %xmm4,%ymm4");338 asm volatile("vpmovsdw %zmm27,%ymm6{%k7}");339 340 /* AVX-512: Op code 0f 38 24 */341 342 asm volatile("vpmovsxwq %xmm4,%ymm6");343 asm volatile("vpmovsqw %zmm27,%xmm6{%k7}");344 345 /* AVX-512: Op code 0f 38 25 */346 347 asm volatile("vpmovsxdq %xmm4,%ymm4");348 asm volatile("vpmovsqd %zmm27,%ymm6{%k7}");349 350 /* AVX-512: Op code 0f 38 26 */351 352 asm volatile("vptestmb %zmm27,%zmm28,%k5");353 asm volatile("vptestmw %zmm27,%zmm28,%k5");354 asm volatile("vptestnmb %zmm26,%zmm27,%k5");355 asm volatile("vptestnmw %zmm26,%zmm27,%k5");356 357 /* AVX-512: Op code 0f 38 27 */358 359 asm volatile("vptestmd %zmm27,%zmm28,%k5");360 asm volatile("vptestmq %zmm27,%zmm28,%k5");361 asm volatile("vptestnmd %zmm26,%zmm27,%k5");362 asm volatile("vptestnmq %zmm26,%zmm27,%k5");363 364 /* AVX-512: Op code 0f 38 28 */365 366 asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");367 asm volatile("vpmovm2b %k5,%zmm28");368 asm volatile("vpmovm2w %k5,%zmm28");369 370 /* AVX-512: Op code 0f 38 29 */371 372 asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");373 asm volatile("vpmovb2m %zmm28,%k5");374 asm volatile("vpmovw2m %zmm28,%k5");375 376 /* AVX-512: Op code 0f 38 2a */377 378 asm volatile("vmovntdqa (%rcx),%ymm4");379 asm volatile("vpbroadcastmb2q %k6,%zmm30");380 381 /* AVX-512: Op code 0f 38 2c */382 383 asm volatile("vmaskmovps (%rcx),%ymm4,%ymm6");384 asm volatile("vscalefps %zmm24,%zmm25,%zmm26");385 asm volatile("vscalefpd %zmm24,%zmm25,%zmm26");386 387 /* AVX-512: Op code 0f 38 2d */388 389 asm volatile("vmaskmovpd (%rcx),%ymm4,%ymm6");390 asm volatile("vscalefss %xmm24,%xmm25,%xmm26{%k7}");391 asm volatile("vscalefsd %xmm24,%xmm25,%xmm26{%k7}");392 393 /* AVX-512: Op code 0f 38 30 */394 395 asm volatile("vpmovzxbw %xmm4,%ymm4");396 asm volatile("vpmovwb %zmm27,%ymm6{%k7}");397 398 /* AVX-512: Op code 0f 38 31 */399 400 asm volatile("vpmovzxbd %xmm4,%ymm6");401 asm volatile("vpmovdb %zmm27,%xmm6{%k7}");402 403 /* AVX-512: Op code 0f 38 32 */404 405 asm volatile("vpmovzxbq %xmm4,%ymm4");406 asm volatile("vpmovqb %zmm27,%xmm6{%k7}");407 408 /* AVX-512: Op code 0f 38 33 */409 410 asm volatile("vpmovzxwd %xmm4,%ymm4");411 asm volatile("vpmovdw %zmm27,%ymm6{%k7}");412 413 /* AVX-512: Op code 0f 38 34 */414 415 asm volatile("vpmovzxwq %xmm4,%ymm6");416 asm volatile("vpmovqw %zmm27,%xmm6{%k7}");417 418 /* AVX-512: Op code 0f 38 35 */419 420 asm volatile("vpmovzxdq %xmm4,%ymm4");421 asm volatile("vpmovqd %zmm27,%ymm6{%k7}");422 423 /* AVX-512: Op code 0f 38 38 */424 425 asm volatile("vpermd %ymm4,%ymm6,%ymm2");426 asm volatile("vpermd %ymm24,%ymm26,%ymm22{%k7}");427 asm volatile("vpermq %ymm24,%ymm26,%ymm22{%k7}");428 429 /* AVX-512: Op code 0f 38 38 */430 431 asm volatile("vpminsb %ymm4,%ymm6,%ymm2");432 asm volatile("vpmovm2d %k5,%zmm28");433 asm volatile("vpmovm2q %k5,%zmm28");434 435 /* AVX-512: Op code 0f 38 39 */436 437 asm volatile("vpminsd %xmm1,%xmm2,%xmm3");438 asm volatile("vpminsd %zmm24,%zmm25,%zmm26");439 asm volatile("vpminsq %zmm24,%zmm25,%zmm26");440 asm volatile("vpmovd2m %zmm28,%k5");441 asm volatile("vpmovq2m %zmm28,%k5");442 443 /* AVX-512: Op code 0f 38 3a */444 445 asm volatile("vpminuw %ymm4,%ymm6,%ymm2");446 asm volatile("vpbroadcastmw2d %k6,%zmm28");447 448 /* AVX-512: Op code 0f 38 3b */449 450 asm volatile("vpminud %ymm4,%ymm6,%ymm2");451 asm volatile("vpminud %zmm24,%zmm25,%zmm26");452 asm volatile("vpminuq %zmm24,%zmm25,%zmm26");453 454 /* AVX-512: Op code 0f 38 3d */455 456 asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");457 asm volatile("vpmaxsd %zmm24,%zmm25,%zmm26");458 asm volatile("vpmaxsq %zmm24,%zmm25,%zmm26");459 460 /* AVX-512: Op code 0f 38 3f */461 462 asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");463 asm volatile("vpmaxud %zmm24,%zmm25,%zmm26");464 asm volatile("vpmaxuq %zmm24,%zmm25,%zmm26");465 466 /* AVX-512: Op code 0f 38 42 */467 468 asm volatile("vpmulld %ymm4,%ymm6,%ymm2");469 asm volatile("vpmulld %zmm24,%zmm25,%zmm26");470 asm volatile("vpmullq %zmm24,%zmm25,%zmm26");471 472 /* AVX-512: Op code 0f 38 42 */473 474 asm volatile("vgetexpps %zmm25,%zmm26");475 asm volatile("vgetexppd %zmm27,%zmm28");476 477 /* AVX-512: Op code 0f 38 43 */478 479 asm volatile("vgetexpss %xmm24,%xmm25,%xmm26{%k7}");480 asm volatile("vgetexpsd %xmm28,%xmm29,%xmm30{%k7}");481 482 /* AVX-512: Op code 0f 38 44 */483 484 asm volatile("vplzcntd %zmm27,%zmm28");485 asm volatile("vplzcntq %zmm27,%zmm28");486 487 /* AVX-512: Op code 0f 38 46 */488 489 asm volatile("vpsravd %ymm4,%ymm6,%ymm2");490 asm volatile("vpsravd %zmm24,%zmm25,%zmm26");491 asm volatile("vpsravq %zmm24,%zmm25,%zmm26");492 493 /* AVX-512: Op code 0f 38 4c */494 495 asm volatile("vrcp14ps %zmm25,%zmm26");496 asm volatile("vrcp14pd %zmm27,%zmm28");497 498 /* AVX-512: Op code 0f 38 4d */499 500 asm volatile("vrcp14ss %xmm24,%xmm25,%xmm26{%k7}");501 asm volatile("vrcp14sd %xmm24,%xmm25,%xmm26{%k7}");502 503 /* AVX-512: Op code 0f 38 4e */504 505 asm volatile("vrsqrt14ps %zmm25,%zmm26");506 asm volatile("vrsqrt14pd %zmm27,%zmm28");507 508 /* AVX-512: Op code 0f 38 4f */509 510 asm volatile("vrsqrt14ss %xmm24,%xmm25,%xmm26{%k7}");511 asm volatile("vrsqrt14sd %xmm24,%xmm25,%xmm26{%k7}");512 513 /* AVX-512: Op code 0f 38 50 */514 515 asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");516 asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");517 asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");518 asm volatile("vpdpbusd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");519 asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");520 521 /* AVX-512: Op code 0f 38 51 */522 523 asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");524 asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");525 asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");526 asm volatile("vpdpbusds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");527 asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");528 529 /* AVX-512: Op code 0f 38 52 */530 531 asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");532 asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");533 asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");534 asm volatile("vdpbf16ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");535 asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");536 537 asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");538 asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");539 asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");540 asm volatile("vpdpwssd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");541 asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");542 543 asm volatile("vp4dpwssd (%rax), %zmm0, %zmm4");544 asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");545 asm volatile("vp4dpwssd 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");546 asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");547 548 /* AVX-512: Op code 0f 38 53 */549 550 asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");551 asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");552 asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");553 asm volatile("vpdpwssds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");554 asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");555 556 asm volatile("vp4dpwssds (%rax), %zmm0, %zmm4");557 asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");558 asm volatile("vp4dpwssds 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");559 asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");560 561 /* AVX-512: Op code 0f 38 54 */562 563 asm volatile("vpopcntb %xmm1, %xmm2");564 asm volatile("vpopcntb %ymm1, %ymm2");565 asm volatile("vpopcntb %zmm1, %zmm2");566 asm volatile("vpopcntb 0x12345678(%rax,%rcx,8),%zmm2");567 asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");568 569 asm volatile("vpopcntw %xmm1, %xmm2");570 asm volatile("vpopcntw %ymm1, %ymm2");571 asm volatile("vpopcntw %zmm1, %zmm2");572 asm volatile("vpopcntw 0x12345678(%rax,%rcx,8),%zmm2");573 asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");574 575 /* AVX-512: Op code 0f 38 55 */576 577 asm volatile("vpopcntd %xmm1, %xmm2");578 asm volatile("vpopcntd %ymm1, %ymm2");579 asm volatile("vpopcntd %zmm1, %zmm2");580 asm volatile("vpopcntd 0x12345678(%rax,%rcx,8),%zmm2");581 asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");582 583 asm volatile("vpopcntq %xmm1, %xmm2");584 asm volatile("vpopcntq %ymm1, %ymm2");585 asm volatile("vpopcntq %zmm1, %zmm2");586 asm volatile("vpopcntq 0x12345678(%rax,%rcx,8),%zmm2");587 asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");588 589 /* AVX-512: Op code 0f 38 59 */590 591 asm volatile("vpbroadcastq %xmm4,%xmm6");592 asm volatile("vbroadcasti32x2 %xmm27,%zmm26");593 594 /* AVX-512: Op code 0f 38 5a */595 596 asm volatile("vbroadcasti128 (%rcx),%ymm4");597 asm volatile("vbroadcasti32x4 (%rcx),%zmm26");598 asm volatile("vbroadcasti64x2 (%rcx),%zmm26");599 600 /* AVX-512: Op code 0f 38 5b */601 602 asm volatile("vbroadcasti32x8 (%rcx),%zmm28");603 asm volatile("vbroadcasti64x4 (%rcx),%zmm26");604 605 /* AVX-512: Op code 0f 38 62 */606 607 asm volatile("vpexpandb %xmm1, %xmm2");608 asm volatile("vpexpandb %ymm1, %ymm2");609 asm volatile("vpexpandb %zmm1, %zmm2");610 asm volatile("vpexpandb 0x12345678(%rax,%rcx,8),%zmm2");611 asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");612 613 asm volatile("vpexpandw %xmm1, %xmm2");614 asm volatile("vpexpandw %ymm1, %ymm2");615 asm volatile("vpexpandw %zmm1, %zmm2");616 asm volatile("vpexpandw 0x12345678(%rax,%rcx,8),%zmm2");617 asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");618 619 /* AVX-512: Op code 0f 38 63 */620 621 asm volatile("vpcompressb %xmm1, %xmm2");622 asm volatile("vpcompressb %ymm1, %ymm2");623 asm volatile("vpcompressb %zmm1, %zmm2");624 asm volatile("vpcompressb %zmm2,0x12345678(%rax,%rcx,8)");625 asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");626 627 asm volatile("vpcompressw %xmm1, %xmm2");628 asm volatile("vpcompressw %ymm1, %ymm2");629 asm volatile("vpcompressw %zmm1, %zmm2");630 asm volatile("vpcompressw %zmm2,0x12345678(%rax,%rcx,8)");631 asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");632 633 /* AVX-512: Op code 0f 38 64 */634 635 asm volatile("vpblendmd %zmm26,%zmm27,%zmm28");636 asm volatile("vpblendmq %zmm26,%zmm27,%zmm28");637 638 /* AVX-512: Op code 0f 38 65 */639 640 asm volatile("vblendmps %zmm24,%zmm25,%zmm26");641 asm volatile("vblendmpd %zmm26,%zmm27,%zmm28");642 643 /* AVX-512: Op code 0f 38 66 */644 645 asm volatile("vpblendmb %zmm26,%zmm27,%zmm28");646 asm volatile("vpblendmw %zmm26,%zmm27,%zmm28");647 648 /* AVX-512: Op code 0f 38 68 */649 650 asm volatile("vp2intersectd %xmm1, %xmm2, %k3");651 asm volatile("vp2intersectd %ymm1, %ymm2, %k3");652 asm volatile("vp2intersectd %zmm1, %zmm2, %k3");653 asm volatile("vp2intersectd 0x12345678(%rax,%rcx,8),%zmm2,%k3");654 asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");655 656 asm volatile("vp2intersectq %xmm1, %xmm2, %k3");657 asm volatile("vp2intersectq %ymm1, %ymm2, %k3");658 asm volatile("vp2intersectq %zmm1, %zmm2, %k3");659 asm volatile("vp2intersectq 0x12345678(%rax,%rcx,8),%zmm2,%k3");660 asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");661 662 /* AVX-512: Op code 0f 38 70 */663 664 asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");665 asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");666 asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");667 asm volatile("vpshldvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");668 asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");669 670 /* AVX-512: Op code 0f 38 71 */671 672 asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");673 asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");674 asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");675 asm volatile("vpshldvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");676 asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");677 678 asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");679 asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");680 asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");681 asm volatile("vpshldvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");682 asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");683 684 /* AVX-512: Op code 0f 38 72 */685 686 asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");687 asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");688 asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");689 asm volatile("vcvtne2ps2bf16 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");690 asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");691 692 asm volatile("vcvtneps2bf16 %xmm1, %xmm2");693 asm volatile("vcvtneps2bf16 %ymm1, %xmm2");694 asm volatile("vcvtneps2bf16 %zmm1, %ymm2");695 asm volatile("vcvtneps2bf16 0x12345678(%rax,%rcx,8),%ymm2");696 asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");697 698 asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");699 asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");700 asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");701 asm volatile("vpshrdvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");702 asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");703 704 /* AVX-512: Op code 0f 38 73 */705 706 asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");707 asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");708 asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");709 asm volatile("vpshrdvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");710 asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");711 712 asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");713 asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");714 asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");715 asm volatile("vpshrdvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");716 asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");717 718 /* AVX-512: Op code 0f 38 75 */719 720 asm volatile("vpermi2b %zmm24,%zmm25,%zmm26");721 asm volatile("vpermi2w %zmm26,%zmm27,%zmm28");722 723 /* AVX-512: Op code 0f 38 76 */724 725 asm volatile("vpermi2d %zmm26,%zmm27,%zmm28");726 asm volatile("vpermi2q %zmm26,%zmm27,%zmm28");727 728 /* AVX-512: Op code 0f 38 77 */729 730 asm volatile("vpermi2ps %zmm26,%zmm27,%zmm28");731 asm volatile("vpermi2pd %zmm26,%zmm27,%zmm28");732 733 /* AVX-512: Op code 0f 38 7a */734 735 asm volatile("vpbroadcastb %eax,%xmm30");736 737 /* AVX-512: Op code 0f 38 7b */738 739 asm volatile("vpbroadcastw %eax,%xmm30");740 741 /* AVX-512: Op code 0f 38 7c */742 743 asm volatile("vpbroadcastd %eax,%xmm30");744 asm volatile("vpbroadcastq %rax,%zmm30");745 746 /* AVX-512: Op code 0f 38 7d */747 748 asm volatile("vpermt2b %zmm26,%zmm27,%zmm28");749 asm volatile("vpermt2w %zmm26,%zmm27,%zmm28");750 751 /* AVX-512: Op code 0f 38 7e */752 753 asm volatile("vpermt2d %zmm26,%zmm27,%zmm28");754 asm volatile("vpermt2q %zmm26,%zmm27,%zmm28");755 756 /* AVX-512: Op code 0f 38 7f */757 758 asm volatile("vpermt2ps %zmm26,%zmm27,%zmm28");759 asm volatile("vpermt2pd %zmm26,%zmm27,%zmm28");760 761 /* AVX-512: Op code 0f 38 83 */762 763 asm volatile("vpmultishiftqb %zmm26,%zmm27,%zmm28");764 765 /* AVX-512: Op code 0f 38 88 */766 767 asm volatile("vexpandps (%rcx),%zmm26");768 asm volatile("vexpandpd (%rcx),%zmm28");769 770 /* AVX-512: Op code 0f 38 89 */771 772 asm volatile("vpexpandd (%rcx),%zmm28");773 asm volatile("vpexpandq (%rcx),%zmm26");774 775 /* AVX-512: Op code 0f 38 8a */776 777 asm volatile("vcompressps %zmm28,(%rcx)");778 asm volatile("vcompresspd %zmm28,(%rcx)");779 780 /* AVX-512: Op code 0f 38 8b */781 782 asm volatile("vpcompressd %zmm28,(%rcx)");783 asm volatile("vpcompressq %zmm26,(%rcx)");784 785 /* AVX-512: Op code 0f 38 8d */786 787 asm volatile("vpermb %zmm26,%zmm27,%zmm28");788 asm volatile("vpermw %zmm26,%zmm27,%zmm28");789 790 /* AVX-512: Op code 0f 38 8f */791 792 asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");793 asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");794 asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");795 asm volatile("vpshufbitqmb 0x12345678(%rax,%rcx,8),%zmm2,%k3");796 asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");797 798 /* AVX-512: Op code 0f 38 90 */799 800 asm volatile("vpgatherdd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");801 asm volatile("vpgatherdq %xmm2,0x04(%rbp,%xmm7,2),%xmm1");802 asm volatile("vpgatherdd 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");803 asm volatile("vpgatherdq 0x7b(%rbp,%ymm27,8),%zmm26{%k1}");804 805 /* AVX-512: Op code 0f 38 91 */806 807 asm volatile("vpgatherqd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");808 asm volatile("vpgatherqq %xmm2,0x02(%rbp,%xmm7,2),%xmm1");809 asm volatile("vpgatherqd 0x7b(%rbp,%zmm27,8),%ymm26{%k1}");810 asm volatile("vpgatherqq 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");811 812 /* AVX-512: Op code 0f 38 9a */813 814 asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");815 asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");816 asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");817 asm volatile("vfmsub132ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");818 asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");819 820 asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");821 asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");822 asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");823 asm volatile("vfmsub132pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");824 asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");825 826 asm volatile("v4fmaddps (%rax), %zmm0, %zmm4");827 asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");828 asm volatile("v4fmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");829 asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");830 831 /* AVX-512: Op code 0f 38 9b */832 833 asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");834 asm volatile("vfmsub132ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");835 asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");836 837 asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");838 asm volatile("vfmsub132sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");839 asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");840 841 asm volatile("v4fmaddss (%rax), %xmm0, %xmm4");842 asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");843 asm volatile("v4fmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");844 asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");845 846 /* AVX-512: Op code 0f 38 a0 */847 848 asm volatile("vpscatterdd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");849 asm volatile("vpscatterdq %zmm26,0x7b(%rbp,%ymm27,8){%k1}");850 851 /* AVX-512: Op code 0f 38 a1 */852 853 asm volatile("vpscatterqd %ymm6,0x7b(%rbp,%zmm29,8){%k1}");854 asm volatile("vpscatterqq %ymm6,0x7b(%rbp,%ymm27,8){%k1}");855 856 /* AVX-512: Op code 0f 38 a2 */857 858 asm volatile("vscatterdps %zmm28,0x7b(%rbp,%zmm29,8){%k1}");859 asm volatile("vscatterdpd %zmm28,0x7b(%rbp,%ymm27,8){%k1}");860 861 /* AVX-512: Op code 0f 38 a3 */862 863 asm volatile("vscatterqps %ymm6,0x7b(%rbp,%zmm29,8){%k1}");864 asm volatile("vscatterqpd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");865 866 /* AVX-512: Op code 0f 38 aa */867 868 asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");869 asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");870 asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");871 asm volatile("vfmsub213ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");872 asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");873 874 asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");875 asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");876 asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");877 asm volatile("vfmsub213pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");878 asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");879 880 asm volatile("v4fnmaddps (%rax), %zmm0, %zmm4");881 asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");882 asm volatile("v4fnmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");883 asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");884 885 /* AVX-512: Op code 0f 38 ab */886 887 asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");888 asm volatile("vfmsub213ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");889 asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");890 891 asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");892 asm volatile("vfmsub213sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");893 asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");894 895 asm volatile("v4fnmaddss (%rax), %xmm0, %xmm4");896 asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");897 asm volatile("v4fnmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");898 asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");899 900 /* AVX-512: Op code 0f 38 b4 */901 902 asm volatile("vpmadd52luq %zmm26,%zmm27,%zmm28");903 904 /* AVX-512: Op code 0f 38 b5 */905 906 asm volatile("vpmadd52huq %zmm26,%zmm27,%zmm28");907 908 /* AVX-512: Op code 0f 38 c4 */909 910 asm volatile("vpconflictd %zmm26,%zmm27");911 asm volatile("vpconflictq %zmm26,%zmm27");912 913 /* AVX-512: Op code 0f 38 c8 */914 915 asm volatile("vexp2ps %zmm29,%zmm30");916 asm volatile("vexp2pd %zmm26,%zmm27");917 918 /* AVX-512: Op code 0f 38 ca */919 920 asm volatile("vrcp28ps %zmm29,%zmm30");921 asm volatile("vrcp28pd %zmm26,%zmm27");922 923 /* AVX-512: Op code 0f 38 cb */924 925 asm volatile("vrcp28ss %xmm28,%xmm29,%xmm30{%k7}");926 asm volatile("vrcp28sd %xmm25,%xmm26,%xmm27{%k7}");927 928 /* AVX-512: Op code 0f 38 cc */929 930 asm volatile("vrsqrt28ps %zmm29,%zmm30");931 asm volatile("vrsqrt28pd %zmm26,%zmm27");932 933 /* AVX-512: Op code 0f 38 cd */934 935 asm volatile("vrsqrt28ss %xmm28,%xmm29,%xmm30{%k7}");936 asm volatile("vrsqrt28sd %xmm25,%xmm26,%xmm27{%k7}");937 938 /* AVX-512: Op code 0f 38 cf */939 940 asm volatile("gf2p8mulb %xmm1, %xmm3");941 asm volatile("gf2p8mulb 0x12345678(%rax,%rcx,8),%xmm3");942 asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");943 944 asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");945 asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");946 asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");947 asm volatile("vgf2p8mulb 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");948 asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");949 950 /* AVX-512: Op code 0f 38 dc */951 952 asm volatile("vaesenc %xmm1, %xmm2, %xmm3");953 asm volatile("vaesenc %ymm1, %ymm2, %ymm3");954 asm volatile("vaesenc %zmm1, %zmm2, %zmm3");955 asm volatile("vaesenc 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");956 asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");957 958 /* AVX-512: Op code 0f 38 dd */959 960 asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");961 asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");962 asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");963 asm volatile("vaesenclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");964 asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");965 966 /* AVX-512: Op code 0f 38 de */967 968 asm volatile("vaesdec %xmm1, %xmm2, %xmm3");969 asm volatile("vaesdec %ymm1, %ymm2, %ymm3");970 asm volatile("vaesdec %zmm1, %zmm2, %zmm3");971 asm volatile("vaesdec 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");972 asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");973 974 /* AVX-512: Op code 0f 38 df */975 976 asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");977 asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");978 asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");979 asm volatile("vaesdeclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");980 asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");981 982 /* AVX-512: Op code 0f 3a 03 */983 984 asm volatile("valignd $0x12,%zmm28,%zmm29,%zmm30");985 asm volatile("valignq $0x12,%zmm25,%zmm26,%zmm27");986 987 /* AVX-512: Op code 0f 3a 08 */988 989 asm volatile("vroundps $0x5,%ymm6,%ymm2");990 asm volatile("vrndscaleps $0x12,%zmm25,%zmm26");991 992 /* AVX-512: Op code 0f 3a 09 */993 994 asm volatile("vroundpd $0x5,%ymm6,%ymm2");995 asm volatile("vrndscalepd $0x12,%zmm25,%zmm26");996 997 /* AVX-512: Op code 0f 3a 1a */998 999 asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");1000 asm volatile("vrndscaless $0x12,%xmm24,%xmm25,%xmm26{%k7}");1001 1002 /* AVX-512: Op code 0f 3a 0b */1003 1004 asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");1005 asm volatile("vrndscalesd $0x12,%xmm24,%xmm25,%xmm26{%k7}");1006 1007 /* AVX-512: Op code 0f 3a 18 */1008 1009 asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");1010 asm volatile("vinsertf32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");1011 asm volatile("vinsertf64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");1012 1013 /* AVX-512: Op code 0f 3a 19 */1014 1015 asm volatile("vextractf128 $0x5,%ymm4,%xmm4");1016 asm volatile("vextractf32x4 $0x12,%zmm25,%xmm26{%k7}");1017 asm volatile("vextractf64x2 $0x12,%zmm25,%xmm26{%k7}");1018 1019 /* AVX-512: Op code 0f 3a 1a */1020 1021 asm volatile("vinsertf32x8 $0x12,%ymm25,%zmm26,%zmm27{%k7}");1022 asm volatile("vinsertf64x4 $0x12,%ymm28,%zmm29,%zmm30{%k7}");1023 1024 /* AVX-512: Op code 0f 3a 1b */1025 1026 asm volatile("vextractf32x8 $0x12,%zmm29,%ymm30{%k7}");1027 asm volatile("vextractf64x4 $0x12,%zmm26,%ymm27{%k7}");1028 1029 /* AVX-512: Op code 0f 3a 1e */1030 1031 asm volatile("vpcmpud $0x12,%zmm29,%zmm30,%k5");1032 asm volatile("vpcmpuq $0x12,%zmm26,%zmm27,%k5");1033 1034 /* AVX-512: Op code 0f 3a 1f */1035 1036 asm volatile("vpcmpd $0x12,%zmm29,%zmm30,%k5");1037 asm volatile("vpcmpq $0x12,%zmm26,%zmm27,%k5");1038 1039 /* AVX-512: Op code 0f 3a 23 */1040 1041 asm volatile("vshuff32x4 $0x12,%zmm28,%zmm29,%zmm30");1042 asm volatile("vshuff64x2 $0x12,%zmm25,%zmm26,%zmm27");1043 1044 /* AVX-512: Op code 0f 3a 25 */1045 1046 asm volatile("vpternlogd $0x12,%zmm28,%zmm29,%zmm30");1047 asm volatile("vpternlogq $0x12,%zmm28,%zmm29,%zmm30");1048 1049 /* AVX-512: Op code 0f 3a 26 */1050 1051 asm volatile("vgetmantps $0x12,%zmm26,%zmm27");1052 asm volatile("vgetmantpd $0x12,%zmm29,%zmm30");1053 1054 /* AVX-512: Op code 0f 3a 27 */1055 1056 asm volatile("vgetmantss $0x12,%xmm25,%xmm26,%xmm27{%k7}");1057 asm volatile("vgetmantsd $0x12,%xmm28,%xmm29,%xmm30{%k7}");1058 1059 /* AVX-512: Op code 0f 3a 38 */1060 1061 asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");1062 asm volatile("vinserti32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");1063 asm volatile("vinserti64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");1064 1065 /* AVX-512: Op code 0f 3a 39 */1066 1067 asm volatile("vextracti128 $0x5,%ymm4,%xmm6");1068 asm volatile("vextracti32x4 $0x12,%zmm25,%xmm26{%k7}");1069 asm volatile("vextracti64x2 $0x12,%zmm25,%xmm26{%k7}");1070 1071 /* AVX-512: Op code 0f 3a 3a */1072 1073 asm volatile("vinserti32x8 $0x12,%ymm28,%zmm29,%zmm30{%k7}");1074 asm volatile("vinserti64x4 $0x12,%ymm25,%zmm26,%zmm27{%k7}");1075 1076 /* AVX-512: Op code 0f 3a 3b */1077 1078 asm volatile("vextracti32x8 $0x12,%zmm29,%ymm30{%k7}");1079 asm volatile("vextracti64x4 $0x12,%zmm26,%ymm27{%k7}");1080 1081 /* AVX-512: Op code 0f 3a 3e */1082 1083 asm volatile("vpcmpub $0x12,%zmm29,%zmm30,%k5");1084 asm volatile("vpcmpuw $0x12,%zmm26,%zmm27,%k5");1085 1086 /* AVX-512: Op code 0f 3a 3f */1087 1088 asm volatile("vpcmpb $0x12,%zmm29,%zmm30,%k5");1089 asm volatile("vpcmpw $0x12,%zmm26,%zmm27,%k5");1090 1091 /* AVX-512: Op code 0f 3a 43 */1092 1093 asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");1094 asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");1095 1096 /* AVX-512: Op code 0f 3a 43 */1097 1098 asm volatile("vshufi32x4 $0x12,%zmm25,%zmm26,%zmm27");1099 asm volatile("vshufi64x2 $0x12,%zmm28,%zmm29,%zmm30");1100 1101 /* AVX-512: Op code 0f 3a 44 */1102 1103 asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");1104 asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");1105 asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");1106 asm volatile("vpclmulqdq $0x12,%zmm25,%zmm26,%zmm27");1107 1108 /* AVX-512: Op code 0f 3a 50 */1109 1110 asm volatile("vrangeps $0x12,%zmm25,%zmm26,%zmm27");1111 asm volatile("vrangepd $0x12,%zmm28,%zmm29,%zmm30");1112 1113 /* AVX-512: Op code 0f 3a 51 */1114 1115 asm volatile("vrangess $0x12,%xmm25,%xmm26,%xmm27");1116 asm volatile("vrangesd $0x12,%xmm28,%xmm29,%xmm30");1117 1118 /* AVX-512: Op code 0f 3a 54 */1119 1120 asm volatile("vfixupimmps $0x12,%zmm28,%zmm29,%zmm30");1121 asm volatile("vfixupimmpd $0x12,%zmm25,%zmm26,%zmm27");1122 1123 /* AVX-512: Op code 0f 3a 55 */1124 1125 asm volatile("vfixupimmss $0x12,%xmm28,%xmm29,%xmm30{%k7}");1126 asm volatile("vfixupimmsd $0x12,%xmm25,%xmm26,%xmm27{%k7}");1127 1128 /* AVX-512: Op code 0f 3a 56 */1129 1130 asm volatile("vreduceps $0x12,%zmm26,%zmm27");1131 asm volatile("vreducepd $0x12,%zmm29,%zmm30");1132 1133 /* AVX-512: Op code 0f 3a 57 */1134 1135 asm volatile("vreducess $0x12,%xmm25,%xmm26,%xmm27");1136 asm volatile("vreducesd $0x12,%xmm28,%xmm29,%xmm30");1137 1138 /* AVX-512: Op code 0f 3a 66 */1139 1140 asm volatile("vfpclassps $0x12,%zmm27,%k5");1141 asm volatile("vfpclasspd $0x12,%zmm30,%k5");1142 1143 /* AVX-512: Op code 0f 3a 67 */1144 1145 asm volatile("vfpclassss $0x12,%xmm27,%k5");1146 asm volatile("vfpclasssd $0x12,%xmm30,%k5");1147 1148 /* AVX-512: Op code 0f 3a 70 */1149 1150 asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");1151 asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");1152 asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");1153 asm volatile("vpshldw $0x12,%zmm25,%zmm26,%zmm27");1154 1155 /* AVX-512: Op code 0f 3a 71 */1156 1157 asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");1158 asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");1159 asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");1160 asm volatile("vpshldd $0x12,%zmm25,%zmm26,%zmm27");1161 1162 asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");1163 asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");1164 asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");1165 asm volatile("vpshldq $0x12,%zmm25,%zmm26,%zmm27");1166 1167 /* AVX-512: Op code 0f 3a 72 */1168 1169 asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");1170 asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");1171 asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");1172 asm volatile("vpshrdw $0x12,%zmm25,%zmm26,%zmm27");1173 1174 /* AVX-512: Op code 0f 3a 73 */1175 1176 asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");1177 asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");1178 asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");1179 asm volatile("vpshrdd $0x12,%zmm25,%zmm26,%zmm27");1180 1181 asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");1182 asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");1183 asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");1184 asm volatile("vpshrdq $0x12,%zmm25,%zmm26,%zmm27");1185 1186 /* AVX-512: Op code 0f 3a ce */1187 1188 asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");1189 1190 asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");1191 asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");1192 asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");1193 asm volatile("vgf2p8affineqb $0x12,%zmm25,%zmm26,%zmm27");1194 1195 /* AVX-512: Op code 0f 3a cf */1196 1197 asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");1198 1199 asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");1200 asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");1201 asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");1202 asm volatile("vgf2p8affineinvqb $0x12,%zmm25,%zmm26,%zmm27");1203 1204 /* AVX-512: Op code 0f 72 (Grp13) */1205 1206 asm volatile("vprord $0x12,%zmm25,%zmm26");1207 asm volatile("vprorq $0x12,%zmm25,%zmm26");1208 asm volatile("vprold $0x12,%zmm29,%zmm30");1209 asm volatile("vprolq $0x12,%zmm29,%zmm30");1210 asm volatile("psrad $0x2,%mm6");1211 asm volatile("vpsrad $0x5,%ymm6,%ymm2");1212 asm volatile("vpsrad $0x5,%zmm26,%zmm22");1213 asm volatile("vpsraq $0x5,%zmm26,%zmm22");1214 1215 /* AVX-512: Op code 0f 38 c6 (Grp18) */1216 1217 asm volatile("vgatherpf0dps 0x7b(%r14,%zmm31,8){%k1}");1218 asm volatile("vgatherpf0dpd 0x7b(%r14,%ymm31,8){%k1}");1219 asm volatile("vgatherpf1dps 0x7b(%r14,%zmm31,8){%k1}");1220 asm volatile("vgatherpf1dpd 0x7b(%r14,%ymm31,8){%k1}");1221 asm volatile("vscatterpf0dps 0x7b(%r14,%zmm31,8){%k1}");1222 asm volatile("vscatterpf0dpd 0x7b(%r14,%ymm31,8){%k1}");1223 asm volatile("vscatterpf1dps 0x7b(%r14,%zmm31,8){%k1}");1224 asm volatile("vscatterpf1dpd 0x7b(%r14,%ymm31,8){%k1}");1225 1226 /* AVX-512: Op code 0f 38 c7 (Grp19) */1227 1228 asm volatile("vgatherpf0qps 0x7b(%r14,%zmm31,8){%k1}");1229 asm volatile("vgatherpf0qpd 0x7b(%r14,%zmm31,8){%k1}");1230 asm volatile("vgatherpf1qps 0x7b(%r14,%zmm31,8){%k1}");1231 asm volatile("vgatherpf1qpd 0x7b(%r14,%zmm31,8){%k1}");1232 asm volatile("vscatterpf0qps 0x7b(%r14,%zmm31,8){%k1}");1233 asm volatile("vscatterpf0qpd 0x7b(%r14,%zmm31,8){%k1}");1234 asm volatile("vscatterpf1qps 0x7b(%r14,%zmm31,8){%k1}");1235 asm volatile("vscatterpf1qpd 0x7b(%r14,%zmm31,8){%k1}");1236 1237 /* AVX-512: Examples */1238 1239 asm volatile("vaddpd %zmm28,%zmm29,%zmm30");1240 asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}");1241 asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}{z}");1242 asm volatile("vaddpd {rn-sae},%zmm28,%zmm29,%zmm30");1243 asm volatile("vaddpd {ru-sae},%zmm28,%zmm29,%zmm30");1244 asm volatile("vaddpd {rd-sae},%zmm28,%zmm29,%zmm30");1245 asm volatile("vaddpd {rz-sae},%zmm28,%zmm29,%zmm30");1246 asm volatile("vaddpd (%rcx),%zmm29,%zmm30");1247 asm volatile("vaddpd 0x123(%rax,%r14,8),%zmm29,%zmm30");1248 asm volatile("vaddpd (%rcx){1to8},%zmm29,%zmm30");1249 asm volatile("vaddpd 0x1fc0(%rdx),%zmm29,%zmm30");1250 asm volatile("vaddpd 0x3f8(%rdx){1to8},%zmm29,%zmm30");1251 asm volatile("vcmpeq_uqps 0x1fc(%rdx){1to16},%zmm30,%k5");1252 asm volatile("vcmpltsd 0x123(%rax,%r14,8),%xmm29,%k5{%k7}");1253 asm volatile("vcmplesd {sae},%xmm28,%xmm29,%k5{%k7}");1254 asm volatile("vgetmantss $0x5b,0x123(%rax,%r14,8),%xmm29,%xmm30{%k7}");1255 1256 /* bndmk m64, bnd */1257 1258 asm volatile("bndmk (%rax), %bnd0");1259 asm volatile("bndmk (%r8), %bnd0");1260 asm volatile("bndmk (0x12345678), %bnd0");1261 asm volatile("bndmk (%rax), %bnd3");1262 asm volatile("bndmk (%rcx,%rax,1), %bnd0");1263 asm volatile("bndmk 0x12345678(,%rax,1), %bnd0");1264 asm volatile("bndmk (%rax,%rcx,1), %bnd0");1265 asm volatile("bndmk (%rax,%rcx,8), %bnd0");1266 asm volatile("bndmk 0x12(%rax), %bnd0");1267 asm volatile("bndmk 0x12(%rbp), %bnd0");1268 asm volatile("bndmk 0x12(%rcx,%rax,1), %bnd0");1269 asm volatile("bndmk 0x12(%rbp,%rax,1), %bnd0");1270 asm volatile("bndmk 0x12(%rax,%rcx,1), %bnd0");1271 asm volatile("bndmk 0x12(%rax,%rcx,8), %bnd0");1272 asm volatile("bndmk 0x12345678(%rax), %bnd0");1273 asm volatile("bndmk 0x12345678(%rbp), %bnd0");1274 asm volatile("bndmk 0x12345678(%rcx,%rax,1), %bnd0");1275 asm volatile("bndmk 0x12345678(%rbp,%rax,1), %bnd0");1276 asm volatile("bndmk 0x12345678(%rax,%rcx,1), %bnd0");1277 asm volatile("bndmk 0x12345678(%rax,%rcx,8), %bnd0");1278 1279 /* bndcl r/m64, bnd */1280 1281 asm volatile("bndcl (%rax), %bnd0");1282 asm volatile("bndcl (%r8), %bnd0");1283 asm volatile("bndcl (0x12345678), %bnd0");1284 asm volatile("bndcl (%rax), %bnd3");1285 asm volatile("bndcl (%rcx,%rax,1), %bnd0");1286 asm volatile("bndcl 0x12345678(,%rax,1), %bnd0");1287 asm volatile("bndcl (%rax,%rcx,1), %bnd0");1288 asm volatile("bndcl (%rax,%rcx,8), %bnd0");1289 asm volatile("bndcl 0x12(%rax), %bnd0");1290 asm volatile("bndcl 0x12(%rbp), %bnd0");1291 asm volatile("bndcl 0x12(%rcx,%rax,1), %bnd0");1292 asm volatile("bndcl 0x12(%rbp,%rax,1), %bnd0");1293 asm volatile("bndcl 0x12(%rax,%rcx,1), %bnd0");1294 asm volatile("bndcl 0x12(%rax,%rcx,8), %bnd0");1295 asm volatile("bndcl 0x12345678(%rax), %bnd0");1296 asm volatile("bndcl 0x12345678(%rbp), %bnd0");1297 asm volatile("bndcl 0x12345678(%rcx,%rax,1), %bnd0");1298 asm volatile("bndcl 0x12345678(%rbp,%rax,1), %bnd0");1299 asm volatile("bndcl 0x12345678(%rax,%rcx,1), %bnd0");1300 asm volatile("bndcl 0x12345678(%rax,%rcx,8), %bnd0");1301 asm volatile("bndcl %rax, %bnd0");1302 1303 /* bndcu r/m64, bnd */1304 1305 asm volatile("bndcu (%rax), %bnd0");1306 asm volatile("bndcu (%r8), %bnd0");1307 asm volatile("bndcu (0x12345678), %bnd0");1308 asm volatile("bndcu (%rax), %bnd3");1309 asm volatile("bndcu (%rcx,%rax,1), %bnd0");1310 asm volatile("bndcu 0x12345678(,%rax,1), %bnd0");1311 asm volatile("bndcu (%rax,%rcx,1), %bnd0");1312 asm volatile("bndcu (%rax,%rcx,8), %bnd0");1313 asm volatile("bndcu 0x12(%rax), %bnd0");1314 asm volatile("bndcu 0x12(%rbp), %bnd0");1315 asm volatile("bndcu 0x12(%rcx,%rax,1), %bnd0");1316 asm volatile("bndcu 0x12(%rbp,%rax,1), %bnd0");1317 asm volatile("bndcu 0x12(%rax,%rcx,1), %bnd0");1318 asm volatile("bndcu 0x12(%rax,%rcx,8), %bnd0");1319 asm volatile("bndcu 0x12345678(%rax), %bnd0");1320 asm volatile("bndcu 0x12345678(%rbp), %bnd0");1321 asm volatile("bndcu 0x12345678(%rcx,%rax,1), %bnd0");1322 asm volatile("bndcu 0x12345678(%rbp,%rax,1), %bnd0");1323 asm volatile("bndcu 0x12345678(%rax,%rcx,1), %bnd0");1324 asm volatile("bndcu 0x12345678(%rax,%rcx,8), %bnd0");1325 asm volatile("bndcu %rax, %bnd0");1326 1327 /* bndcn r/m64, bnd */1328 1329 asm volatile("bndcn (%rax), %bnd0");1330 asm volatile("bndcn (%r8), %bnd0");1331 asm volatile("bndcn (0x12345678), %bnd0");1332 asm volatile("bndcn (%rax), %bnd3");1333 asm volatile("bndcn (%rcx,%rax,1), %bnd0");1334 asm volatile("bndcn 0x12345678(,%rax,1), %bnd0");1335 asm volatile("bndcn (%rax,%rcx,1), %bnd0");1336 asm volatile("bndcn (%rax,%rcx,8), %bnd0");1337 asm volatile("bndcn 0x12(%rax), %bnd0");1338 asm volatile("bndcn 0x12(%rbp), %bnd0");1339 asm volatile("bndcn 0x12(%rcx,%rax,1), %bnd0");1340 asm volatile("bndcn 0x12(%rbp,%rax,1), %bnd0");1341 asm volatile("bndcn 0x12(%rax,%rcx,1), %bnd0");1342 asm volatile("bndcn 0x12(%rax,%rcx,8), %bnd0");1343 asm volatile("bndcn 0x12345678(%rax), %bnd0");1344 asm volatile("bndcn 0x12345678(%rbp), %bnd0");1345 asm volatile("bndcn 0x12345678(%rcx,%rax,1), %bnd0");1346 asm volatile("bndcn 0x12345678(%rbp,%rax,1), %bnd0");1347 asm volatile("bndcn 0x12345678(%rax,%rcx,1), %bnd0");1348 asm volatile("bndcn 0x12345678(%rax,%rcx,8), %bnd0");1349 asm volatile("bndcn %rax, %bnd0");1350 1351 /* bndmov m128, bnd */1352 1353 asm volatile("bndmov (%rax), %bnd0");1354 asm volatile("bndmov (%r8), %bnd0");1355 asm volatile("bndmov (0x12345678), %bnd0");1356 asm volatile("bndmov (%rax), %bnd3");1357 asm volatile("bndmov (%rcx,%rax,1), %bnd0");1358 asm volatile("bndmov 0x12345678(,%rax,1), %bnd0");1359 asm volatile("bndmov (%rax,%rcx,1), %bnd0");1360 asm volatile("bndmov (%rax,%rcx,8), %bnd0");1361 asm volatile("bndmov 0x12(%rax), %bnd0");1362 asm volatile("bndmov 0x12(%rbp), %bnd0");1363 asm volatile("bndmov 0x12(%rcx,%rax,1), %bnd0");1364 asm volatile("bndmov 0x12(%rbp,%rax,1), %bnd0");1365 asm volatile("bndmov 0x12(%rax,%rcx,1), %bnd0");1366 asm volatile("bndmov 0x12(%rax,%rcx,8), %bnd0");1367 asm volatile("bndmov 0x12345678(%rax), %bnd0");1368 asm volatile("bndmov 0x12345678(%rbp), %bnd0");1369 asm volatile("bndmov 0x12345678(%rcx,%rax,1), %bnd0");1370 asm volatile("bndmov 0x12345678(%rbp,%rax,1), %bnd0");1371 asm volatile("bndmov 0x12345678(%rax,%rcx,1), %bnd0");1372 asm volatile("bndmov 0x12345678(%rax,%rcx,8), %bnd0");1373 1374 /* bndmov bnd, m128 */1375 1376 asm volatile("bndmov %bnd0, (%rax)");1377 asm volatile("bndmov %bnd0, (%r8)");1378 asm volatile("bndmov %bnd0, (0x12345678)");1379 asm volatile("bndmov %bnd3, (%rax)");1380 asm volatile("bndmov %bnd0, (%rcx,%rax,1)");1381 asm volatile("bndmov %bnd0, 0x12345678(,%rax,1)");1382 asm volatile("bndmov %bnd0, (%rax,%rcx,1)");1383 asm volatile("bndmov %bnd0, (%rax,%rcx,8)");1384 asm volatile("bndmov %bnd0, 0x12(%rax)");1385 asm volatile("bndmov %bnd0, 0x12(%rbp)");1386 asm volatile("bndmov %bnd0, 0x12(%rcx,%rax,1)");1387 asm volatile("bndmov %bnd0, 0x12(%rbp,%rax,1)");1388 asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,1)");1389 asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,8)");1390 asm volatile("bndmov %bnd0, 0x12345678(%rax)");1391 asm volatile("bndmov %bnd0, 0x12345678(%rbp)");1392 asm volatile("bndmov %bnd0, 0x12345678(%rcx,%rax,1)");1393 asm volatile("bndmov %bnd0, 0x12345678(%rbp,%rax,1)");1394 asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,1)");1395 asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,8)");1396 1397 /* bndmov bnd2, bnd1 */1398 1399 asm volatile("bndmov %bnd0, %bnd1");1400 asm volatile("bndmov %bnd1, %bnd0");1401 1402 /* bndldx mib, bnd */1403 1404 asm volatile("bndldx (%rax), %bnd0");1405 asm volatile("bndldx (%r8), %bnd0");1406 asm volatile("bndldx (0x12345678), %bnd0");1407 asm volatile("bndldx (%rax), %bnd3");1408 asm volatile("bndldx (%rcx,%rax,1), %bnd0");1409 asm volatile("bndldx 0x12345678(,%rax,1), %bnd0");1410 asm volatile("bndldx (%rax,%rcx,1), %bnd0");1411 asm volatile("bndldx 0x12(%rax), %bnd0");1412 asm volatile("bndldx 0x12(%rbp), %bnd0");1413 asm volatile("bndldx 0x12(%rcx,%rax,1), %bnd0");1414 asm volatile("bndldx 0x12(%rbp,%rax,1), %bnd0");1415 asm volatile("bndldx 0x12(%rax,%rcx,1), %bnd0");1416 asm volatile("bndldx 0x12345678(%rax), %bnd0");1417 asm volatile("bndldx 0x12345678(%rbp), %bnd0");1418 asm volatile("bndldx 0x12345678(%rcx,%rax,1), %bnd0");1419 asm volatile("bndldx 0x12345678(%rbp,%rax,1), %bnd0");1420 asm volatile("bndldx 0x12345678(%rax,%rcx,1), %bnd0");1421 1422 /* bndstx bnd, mib */1423 1424 asm volatile("bndstx %bnd0, (%rax)");1425 asm volatile("bndstx %bnd0, (%r8)");1426 asm volatile("bndstx %bnd0, (0x12345678)");1427 asm volatile("bndstx %bnd3, (%rax)");1428 asm volatile("bndstx %bnd0, (%rcx,%rax,1)");1429 asm volatile("bndstx %bnd0, 0x12345678(,%rax,1)");1430 asm volatile("bndstx %bnd0, (%rax,%rcx,1)");1431 asm volatile("bndstx %bnd0, 0x12(%rax)");1432 asm volatile("bndstx %bnd0, 0x12(%rbp)");1433 asm volatile("bndstx %bnd0, 0x12(%rcx,%rax,1)");1434 asm volatile("bndstx %bnd0, 0x12(%rbp,%rax,1)");1435 asm volatile("bndstx %bnd0, 0x12(%rax,%rcx,1)");1436 asm volatile("bndstx %bnd0, 0x12345678(%rax)");1437 asm volatile("bndstx %bnd0, 0x12345678(%rbp)");1438 asm volatile("bndstx %bnd0, 0x12345678(%rcx,%rax,1)");1439 asm volatile("bndstx %bnd0, 0x12345678(%rbp,%rax,1)");1440 asm volatile("bndstx %bnd0, 0x12345678(%rax,%rcx,1)");1441 1442 /* bnd prefix on call, ret, jmp and all jcc */1443 1444 asm volatile("bnd call label1"); /* Expecting: call unconditional 0 */1445 asm volatile("bnd call *(%eax)"); /* Expecting: call indirect 0 */1446 asm volatile("bnd ret"); /* Expecting: ret indirect 0 */1447 asm volatile("bnd jmp label1"); /* Expecting: jmp unconditional 0 */1448 asm volatile("bnd jmp label1"); /* Expecting: jmp unconditional 0 */1449 asm volatile("bnd jmp *(%ecx)"); /* Expecting: jmp indirect 0 */1450 asm volatile("bnd jne label1"); /* Expecting: jcc conditional 0 */1451 1452 /* sha1rnds4 imm8, xmm2/m128, xmm1 */1453 1454 asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");1455 asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");1456 asm volatile("sha1rnds4 $0x91, %xmm8, %xmm0");1457 asm volatile("sha1rnds4 $0x91, %xmm7, %xmm8");1458 asm volatile("sha1rnds4 $0x91, %xmm15, %xmm8");1459 asm volatile("sha1rnds4 $0x91, (%rax), %xmm0");1460 asm volatile("sha1rnds4 $0x91, (%r8), %xmm0");1461 asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");1462 asm volatile("sha1rnds4 $0x91, (%rax), %xmm3");1463 asm volatile("sha1rnds4 $0x91, (%rcx,%rax,1), %xmm0");1464 asm volatile("sha1rnds4 $0x91, 0x12345678(,%rax,1), %xmm0");1465 asm volatile("sha1rnds4 $0x91, (%rax,%rcx,1), %xmm0");1466 asm volatile("sha1rnds4 $0x91, (%rax,%rcx,8), %xmm0");1467 asm volatile("sha1rnds4 $0x91, 0x12(%rax), %xmm0");1468 asm volatile("sha1rnds4 $0x91, 0x12(%rbp), %xmm0");1469 asm volatile("sha1rnds4 $0x91, 0x12(%rcx,%rax,1), %xmm0");1470 asm volatile("sha1rnds4 $0x91, 0x12(%rbp,%rax,1), %xmm0");1471 asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,1), %xmm0");1472 asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,8), %xmm0");1473 asm volatile("sha1rnds4 $0x91, 0x12345678(%rax), %xmm0");1474 asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp), %xmm0");1475 asm volatile("sha1rnds4 $0x91, 0x12345678(%rcx,%rax,1), %xmm0");1476 asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp,%rax,1), %xmm0");1477 asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,1), %xmm0");1478 asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm0");1479 asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm15");1480 1481 /* sha1nexte xmm2/m128, xmm1 */1482 1483 asm volatile("sha1nexte %xmm1, %xmm0");1484 asm volatile("sha1nexte %xmm7, %xmm2");1485 asm volatile("sha1nexte %xmm8, %xmm0");1486 asm volatile("sha1nexte %xmm7, %xmm8");1487 asm volatile("sha1nexte %xmm15, %xmm8");1488 asm volatile("sha1nexte (%rax), %xmm0");1489 asm volatile("sha1nexte (%r8), %xmm0");1490 asm volatile("sha1nexte (0x12345678), %xmm0");1491 asm volatile("sha1nexte (%rax), %xmm3");1492 asm volatile("sha1nexte (%rcx,%rax,1), %xmm0");1493 asm volatile("sha1nexte 0x12345678(,%rax,1), %xmm0");1494 asm volatile("sha1nexte (%rax,%rcx,1), %xmm0");1495 asm volatile("sha1nexte (%rax,%rcx,8), %xmm0");1496 asm volatile("sha1nexte 0x12(%rax), %xmm0");1497 asm volatile("sha1nexte 0x12(%rbp), %xmm0");1498 asm volatile("sha1nexte 0x12(%rcx,%rax,1), %xmm0");1499 asm volatile("sha1nexte 0x12(%rbp,%rax,1), %xmm0");1500 asm volatile("sha1nexte 0x12(%rax,%rcx,1), %xmm0");1501 asm volatile("sha1nexte 0x12(%rax,%rcx,8), %xmm0");1502 asm volatile("sha1nexte 0x12345678(%rax), %xmm0");1503 asm volatile("sha1nexte 0x12345678(%rbp), %xmm0");1504 asm volatile("sha1nexte 0x12345678(%rcx,%rax,1), %xmm0");1505 asm volatile("sha1nexte 0x12345678(%rbp,%rax,1), %xmm0");1506 asm volatile("sha1nexte 0x12345678(%rax,%rcx,1), %xmm0");1507 asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm0");1508 asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm15");1509 1510 /* sha1msg1 xmm2/m128, xmm1 */1511 1512 asm volatile("sha1msg1 %xmm1, %xmm0");1513 asm volatile("sha1msg1 %xmm7, %xmm2");1514 asm volatile("sha1msg1 %xmm8, %xmm0");1515 asm volatile("sha1msg1 %xmm7, %xmm8");1516 asm volatile("sha1msg1 %xmm15, %xmm8");1517 asm volatile("sha1msg1 (%rax), %xmm0");1518 asm volatile("sha1msg1 (%r8), %xmm0");1519 asm volatile("sha1msg1 (0x12345678), %xmm0");1520 asm volatile("sha1msg1 (%rax), %xmm3");1521 asm volatile("sha1msg1 (%rcx,%rax,1), %xmm0");1522 asm volatile("sha1msg1 0x12345678(,%rax,1), %xmm0");1523 asm volatile("sha1msg1 (%rax,%rcx,1), %xmm0");1524 asm volatile("sha1msg1 (%rax,%rcx,8), %xmm0");1525 asm volatile("sha1msg1 0x12(%rax), %xmm0");1526 asm volatile("sha1msg1 0x12(%rbp), %xmm0");1527 asm volatile("sha1msg1 0x12(%rcx,%rax,1), %xmm0");1528 asm volatile("sha1msg1 0x12(%rbp,%rax,1), %xmm0");1529 asm volatile("sha1msg1 0x12(%rax,%rcx,1), %xmm0");1530 asm volatile("sha1msg1 0x12(%rax,%rcx,8), %xmm0");1531 asm volatile("sha1msg1 0x12345678(%rax), %xmm0");1532 asm volatile("sha1msg1 0x12345678(%rbp), %xmm0");1533 asm volatile("sha1msg1 0x12345678(%rcx,%rax,1), %xmm0");1534 asm volatile("sha1msg1 0x12345678(%rbp,%rax,1), %xmm0");1535 asm volatile("sha1msg1 0x12345678(%rax,%rcx,1), %xmm0");1536 asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm0");1537 asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm15");1538 1539 /* sha1msg2 xmm2/m128, xmm1 */1540 1541 asm volatile("sha1msg2 %xmm1, %xmm0");1542 asm volatile("sha1msg2 %xmm7, %xmm2");1543 asm volatile("sha1msg2 %xmm8, %xmm0");1544 asm volatile("sha1msg2 %xmm7, %xmm8");1545 asm volatile("sha1msg2 %xmm15, %xmm8");1546 asm volatile("sha1msg2 (%rax), %xmm0");1547 asm volatile("sha1msg2 (%r8), %xmm0");1548 asm volatile("sha1msg2 (0x12345678), %xmm0");1549 asm volatile("sha1msg2 (%rax), %xmm3");1550 asm volatile("sha1msg2 (%rcx,%rax,1), %xmm0");1551 asm volatile("sha1msg2 0x12345678(,%rax,1), %xmm0");1552 asm volatile("sha1msg2 (%rax,%rcx,1), %xmm0");1553 asm volatile("sha1msg2 (%rax,%rcx,8), %xmm0");1554 asm volatile("sha1msg2 0x12(%rax), %xmm0");1555 asm volatile("sha1msg2 0x12(%rbp), %xmm0");1556 asm volatile("sha1msg2 0x12(%rcx,%rax,1), %xmm0");1557 asm volatile("sha1msg2 0x12(%rbp,%rax,1), %xmm0");1558 asm volatile("sha1msg2 0x12(%rax,%rcx,1), %xmm0");1559 asm volatile("sha1msg2 0x12(%rax,%rcx,8), %xmm0");1560 asm volatile("sha1msg2 0x12345678(%rax), %xmm0");1561 asm volatile("sha1msg2 0x12345678(%rbp), %xmm0");1562 asm volatile("sha1msg2 0x12345678(%rcx,%rax,1), %xmm0");1563 asm volatile("sha1msg2 0x12345678(%rbp,%rax,1), %xmm0");1564 asm volatile("sha1msg2 0x12345678(%rax,%rcx,1), %xmm0");1565 asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm0");1566 asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm15");1567 1568 /* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */1569 /* Note sha256rnds2 has an implicit operand 'xmm0' */1570 1571 asm volatile("sha256rnds2 %xmm4, %xmm1");1572 asm volatile("sha256rnds2 %xmm7, %xmm2");1573 asm volatile("sha256rnds2 %xmm8, %xmm1");1574 asm volatile("sha256rnds2 %xmm7, %xmm8");1575 asm volatile("sha256rnds2 %xmm15, %xmm8");1576 asm volatile("sha256rnds2 (%rax), %xmm1");1577 asm volatile("sha256rnds2 (%r8), %xmm1");1578 asm volatile("sha256rnds2 (0x12345678), %xmm1");1579 asm volatile("sha256rnds2 (%rax), %xmm3");1580 asm volatile("sha256rnds2 (%rcx,%rax,1), %xmm1");1581 asm volatile("sha256rnds2 0x12345678(,%rax,1), %xmm1");1582 asm volatile("sha256rnds2 (%rax,%rcx,1), %xmm1");1583 asm volatile("sha256rnds2 (%rax,%rcx,8), %xmm1");1584 asm volatile("sha256rnds2 0x12(%rax), %xmm1");1585 asm volatile("sha256rnds2 0x12(%rbp), %xmm1");1586 asm volatile("sha256rnds2 0x12(%rcx,%rax,1), %xmm1");1587 asm volatile("sha256rnds2 0x12(%rbp,%rax,1), %xmm1");1588 asm volatile("sha256rnds2 0x12(%rax,%rcx,1), %xmm1");1589 asm volatile("sha256rnds2 0x12(%rax,%rcx,8), %xmm1");1590 asm volatile("sha256rnds2 0x12345678(%rax), %xmm1");1591 asm volatile("sha256rnds2 0x12345678(%rbp), %xmm1");1592 asm volatile("sha256rnds2 0x12345678(%rcx,%rax,1), %xmm1");1593 asm volatile("sha256rnds2 0x12345678(%rbp,%rax,1), %xmm1");1594 asm volatile("sha256rnds2 0x12345678(%rax,%rcx,1), %xmm1");1595 asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm1");1596 asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm15");1597 1598 /* sha256msg1 xmm2/m128, xmm1 */1599 1600 asm volatile("sha256msg1 %xmm1, %xmm0");1601 asm volatile("sha256msg1 %xmm7, %xmm2");1602 asm volatile("sha256msg1 %xmm8, %xmm0");1603 asm volatile("sha256msg1 %xmm7, %xmm8");1604 asm volatile("sha256msg1 %xmm15, %xmm8");1605 asm volatile("sha256msg1 (%rax), %xmm0");1606 asm volatile("sha256msg1 (%r8), %xmm0");1607 asm volatile("sha256msg1 (0x12345678), %xmm0");1608 asm volatile("sha256msg1 (%rax), %xmm3");1609 asm volatile("sha256msg1 (%rcx,%rax,1), %xmm0");1610 asm volatile("sha256msg1 0x12345678(,%rax,1), %xmm0");1611 asm volatile("sha256msg1 (%rax,%rcx,1), %xmm0");1612 asm volatile("sha256msg1 (%rax,%rcx,8), %xmm0");1613 asm volatile("sha256msg1 0x12(%rax), %xmm0");1614 asm volatile("sha256msg1 0x12(%rbp), %xmm0");1615 asm volatile("sha256msg1 0x12(%rcx,%rax,1), %xmm0");1616 asm volatile("sha256msg1 0x12(%rbp,%rax,1), %xmm0");1617 asm volatile("sha256msg1 0x12(%rax,%rcx,1), %xmm0");1618 asm volatile("sha256msg1 0x12(%rax,%rcx,8), %xmm0");1619 asm volatile("sha256msg1 0x12345678(%rax), %xmm0");1620 asm volatile("sha256msg1 0x12345678(%rbp), %xmm0");1621 asm volatile("sha256msg1 0x12345678(%rcx,%rax,1), %xmm0");1622 asm volatile("sha256msg1 0x12345678(%rbp,%rax,1), %xmm0");1623 asm volatile("sha256msg1 0x12345678(%rax,%rcx,1), %xmm0");1624 asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm0");1625 asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm15");1626 1627 /* sha256msg2 xmm2/m128, xmm1 */1628 1629 asm volatile("sha256msg2 %xmm1, %xmm0");1630 asm volatile("sha256msg2 %xmm7, %xmm2");1631 asm volatile("sha256msg2 %xmm8, %xmm0");1632 asm volatile("sha256msg2 %xmm7, %xmm8");1633 asm volatile("sha256msg2 %xmm15, %xmm8");1634 asm volatile("sha256msg2 (%rax), %xmm0");1635 asm volatile("sha256msg2 (%r8), %xmm0");1636 asm volatile("sha256msg2 (0x12345678), %xmm0");1637 asm volatile("sha256msg2 (%rax), %xmm3");1638 asm volatile("sha256msg2 (%rcx,%rax,1), %xmm0");1639 asm volatile("sha256msg2 0x12345678(,%rax,1), %xmm0");1640 asm volatile("sha256msg2 (%rax,%rcx,1), %xmm0");1641 asm volatile("sha256msg2 (%rax,%rcx,8), %xmm0");1642 asm volatile("sha256msg2 0x12(%rax), %xmm0");1643 asm volatile("sha256msg2 0x12(%rbp), %xmm0");1644 asm volatile("sha256msg2 0x12(%rcx,%rax,1), %xmm0");1645 asm volatile("sha256msg2 0x12(%rbp,%rax,1), %xmm0");1646 asm volatile("sha256msg2 0x12(%rax,%rcx,1), %xmm0");1647 asm volatile("sha256msg2 0x12(%rax,%rcx,8), %xmm0");1648 asm volatile("sha256msg2 0x12345678(%rax), %xmm0");1649 asm volatile("sha256msg2 0x12345678(%rbp), %xmm0");1650 asm volatile("sha256msg2 0x12345678(%rcx,%rax,1), %xmm0");1651 asm volatile("sha256msg2 0x12345678(%rbp,%rax,1), %xmm0");1652 asm volatile("sha256msg2 0x12345678(%rax,%rcx,1), %xmm0");1653 asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm0");1654 asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm15");1655 1656 /* clflushopt m8 */1657 1658 asm volatile("clflushopt (%rax)");1659 asm volatile("clflushopt (%r8)");1660 asm volatile("clflushopt (0x12345678)");1661 asm volatile("clflushopt 0x12345678(%rax,%rcx,8)");1662 asm volatile("clflushopt 0x12345678(%r8,%rcx,8)");1663 /* Also check instructions in the same group encoding as clflushopt */1664 asm volatile("clflush (%rax)");1665 asm volatile("clflush (%r8)");1666 asm volatile("sfence");1667 1668 /* clwb m8 */1669 1670 asm volatile("clwb (%rax)");1671 asm volatile("clwb (%r8)");1672 asm volatile("clwb (0x12345678)");1673 asm volatile("clwb 0x12345678(%rax,%rcx,8)");1674 asm volatile("clwb 0x12345678(%r8,%rcx,8)");1675 /* Also check instructions in the same group encoding as clwb */1676 asm volatile("xsaveopt (%rax)");1677 asm volatile("xsaveopt (%r8)");1678 asm volatile("mfence");1679 1680 /* cldemote m8 */1681 1682 asm volatile("cldemote (%rax)");1683 asm volatile("cldemote (%r8)");1684 asm volatile("cldemote (0x12345678)");1685 asm volatile("cldemote 0x12345678(%rax,%rcx,8)");1686 asm volatile("cldemote 0x12345678(%r8,%rcx,8)");1687 1688 /* xsavec mem */1689 1690 asm volatile("xsavec (%rax)");1691 asm volatile("xsavec (%r8)");1692 asm volatile("xsavec (0x12345678)");1693 asm volatile("xsavec 0x12345678(%rax,%rcx,8)");1694 asm volatile("xsavec 0x12345678(%r8,%rcx,8)");1695 1696 /* xsaves mem */1697 1698 asm volatile("xsaves (%rax)");1699 asm volatile("xsaves (%r8)");1700 asm volatile("xsaves (0x12345678)");1701 asm volatile("xsaves 0x12345678(%rax,%rcx,8)");1702 asm volatile("xsaves 0x12345678(%r8,%rcx,8)");1703 1704 /* xrstors mem */1705 1706 asm volatile("xrstors (%rax)");1707 asm volatile("xrstors (%r8)");1708 asm volatile("xrstors (0x12345678)");1709 asm volatile("xrstors 0x12345678(%rax,%rcx,8)");1710 asm volatile("xrstors 0x12345678(%r8,%rcx,8)");1711 1712 /* ptwrite */1713 1714 asm volatile("ptwrite (%rax)");1715 asm volatile("ptwrite (%r8)");1716 asm volatile("ptwrite (0x12345678)");1717 asm volatile("ptwrite 0x12345678(%rax,%rcx,8)");1718 asm volatile("ptwrite 0x12345678(%r8,%rcx,8)");1719 1720 asm volatile("ptwritel (%rax)");1721 asm volatile("ptwritel (%r8)");1722 asm volatile("ptwritel (0x12345678)");1723 asm volatile("ptwritel 0x12345678(%rax,%rcx,8)");1724 asm volatile("ptwritel 0x12345678(%r8,%rcx,8)");1725 1726 asm volatile("ptwriteq (%rax)");1727 asm volatile("ptwriteq (%r8)");1728 asm volatile("ptwriteq (0x12345678)");1729 asm volatile("ptwriteq 0x12345678(%rax,%rcx,8)");1730 asm volatile("ptwriteq 0x12345678(%r8,%rcx,8)");1731 1732 /* tpause */1733 1734 asm volatile("tpause %ebx");1735 asm volatile("tpause %r8d");1736 1737 /* umonitor */1738 1739 asm volatile("umonitor %eax");1740 asm volatile("umonitor %rax");1741 asm volatile("umonitor %r8d");1742 1743 /* umwait */1744 1745 asm volatile("umwait %eax");1746 asm volatile("umwait %r8d");1747 1748 /* movdiri */1749 1750 asm volatile("movdiri %rax,(%rbx)");1751 asm volatile("movdiri %rcx,0x12345678(%rax)");1752 1753 /* movdir64b */1754 1755 asm volatile("movdir64b (%rax),%rbx");1756 asm volatile("movdir64b 0x12345678(%rax),%rcx");1757 asm volatile("movdir64b (%eax),%ebx");1758 asm volatile("movdir64b 0x12345678(%eax),%ecx");1759 1760 /* enqcmd */1761 1762 asm volatile("enqcmd (%rax),%rbx");1763 asm volatile("enqcmd 0x12345678(%rax),%rcx");1764 asm volatile("enqcmd (%eax),%ebx");1765 asm volatile("enqcmd 0x12345678(%eax),%ecx");1766 1767 /* enqcmds */1768 1769 asm volatile("enqcmds (%rax),%rbx");1770 asm volatile("enqcmds 0x12345678(%rax),%rcx");1771 asm volatile("enqcmds (%eax),%ebx");1772 asm volatile("enqcmds 0x12345678(%eax),%ecx");1773 1774 /* incsspd/q */1775 1776 asm volatile("incsspd %eax");1777 asm volatile("incsspd %r8d");1778 asm volatile("incsspq %rax");1779 asm volatile("incsspq %r8");1780 /* Also check instructions in the same group encoding as incsspd/q */1781 asm volatile("xrstor (%rax)");1782 asm volatile("xrstor (%r8)");1783 asm volatile("xrstor (0x12345678)");1784 asm volatile("xrstor 0x12345678(%rax,%rcx,8)");1785 asm volatile("xrstor 0x12345678(%r8,%rcx,8)");1786 asm volatile("lfence");1787 1788 /* rdsspd/q */1789 1790 asm volatile("rdsspd %eax");1791 asm volatile("rdsspd %r8d");1792 asm volatile("rdsspq %rax");1793 asm volatile("rdsspq %r8");1794 1795 /* saveprevssp */1796 1797 asm volatile("saveprevssp");1798 1799 /* rstorssp */1800 1801 asm volatile("rstorssp (%rax)");1802 asm volatile("rstorssp (%r8)");1803 asm volatile("rstorssp (0x12345678)");1804 asm volatile("rstorssp 0x12345678(%rax,%rcx,8)");1805 asm volatile("rstorssp 0x12345678(%r8,%rcx,8)");1806 1807 /* wrssd/q */1808 1809 asm volatile("wrssd %ecx,(%rax)");1810 asm volatile("wrssd %edx,(%r8)");1811 asm volatile("wrssd %edx,(0x12345678)");1812 asm volatile("wrssd %edx,0x12345678(%rax,%rcx,8)");1813 asm volatile("wrssd %edx,0x12345678(%r8,%rcx,8)");1814 asm volatile("wrssq %rcx,(%rax)");1815 asm volatile("wrssq %rdx,(%r8)");1816 asm volatile("wrssq %rdx,(0x12345678)");1817 asm volatile("wrssq %rdx,0x12345678(%rax,%rcx,8)");1818 asm volatile("wrssq %rdx,0x12345678(%r8,%rcx,8)");1819 1820 /* wrussd/q */1821 1822 asm volatile("wrussd %ecx,(%rax)");1823 asm volatile("wrussd %edx,(%r8)");1824 asm volatile("wrussd %edx,(0x12345678)");1825 asm volatile("wrussd %edx,0x12345678(%rax,%rcx,8)");1826 asm volatile("wrussd %edx,0x12345678(%r8,%rcx,8)");1827 asm volatile("wrussq %rcx,(%rax)");1828 asm volatile("wrussq %rdx,(%r8)");1829 asm volatile("wrussq %rdx,(0x12345678)");1830 asm volatile("wrussq %rdx,0x12345678(%rax,%rcx,8)");1831 asm volatile("wrussq %rdx,0x12345678(%r8,%rcx,8)");1832 1833 /* setssbsy */1834 1835 asm volatile("setssbsy");1836 /* Also check instructions in the same group encoding as setssbsy */1837 asm volatile("rdpkru");1838 asm volatile("wrpkru");1839 1840 /* clrssbsy */1841 1842 asm volatile("clrssbsy (%rax)");1843 asm volatile("clrssbsy (%r8)");1844 asm volatile("clrssbsy (0x12345678)");1845 asm volatile("clrssbsy 0x12345678(%rax,%rcx,8)");1846 asm volatile("clrssbsy 0x12345678(%r8,%rcx,8)");1847 1848 /* endbr32/64 */1849 1850 asm volatile("endbr32");1851 asm volatile("endbr64");1852 1853 /* call with/without notrack prefix */1854 1855 asm volatile("callq *%rax"); /* Expecting: call indirect 0 */1856 asm volatile("callq *(%rax)"); /* Expecting: call indirect 0 */1857 asm volatile("callq *(%r8)"); /* Expecting: call indirect 0 */1858 asm volatile("callq *(0x12345678)"); /* Expecting: call indirect 0 */1859 asm volatile("callq *0x12345678(%rax,%rcx,8)"); /* Expecting: call indirect 0 */1860 asm volatile("callq *0x12345678(%r8,%rcx,8)"); /* Expecting: call indirect 0 */1861 1862 asm volatile("bnd callq *%rax"); /* Expecting: call indirect 0 */1863 asm volatile("bnd callq *(%rax)"); /* Expecting: call indirect 0 */1864 asm volatile("bnd callq *(%r8)"); /* Expecting: call indirect 0 */1865 asm volatile("bnd callq *(0x12345678)"); /* Expecting: call indirect 0 */1866 asm volatile("bnd callq *0x12345678(%rax,%rcx,8)"); /* Expecting: call indirect 0 */1867 asm volatile("bnd callq *0x12345678(%r8,%rcx,8)"); /* Expecting: call indirect 0 */1868 1869 asm volatile("notrack callq *%rax"); /* Expecting: call indirect 0 */1870 asm volatile("notrack callq *(%rax)"); /* Expecting: call indirect 0 */1871 asm volatile("notrack callq *(%r8)"); /* Expecting: call indirect 0 */1872 asm volatile("notrack callq *(0x12345678)"); /* Expecting: call indirect 0 */1873 asm volatile("notrack callq *0x12345678(%rax,%rcx,8)"); /* Expecting: call indirect 0 */1874 asm volatile("notrack callq *0x12345678(%r8,%rcx,8)"); /* Expecting: call indirect 0 */1875 1876 asm volatile("notrack bnd callq *%rax"); /* Expecting: call indirect 0 */1877 asm volatile("notrack bnd callq *(%rax)"); /* Expecting: call indirect 0 */1878 asm volatile("notrack bnd callq *(%r8)"); /* Expecting: call indirect 0 */1879 asm volatile("notrack bnd callq *(0x12345678)"); /* Expecting: call indirect 0 */1880 asm volatile("notrack bnd callq *0x12345678(%rax,%rcx,8)"); /* Expecting: call indirect 0 */1881 asm volatile("notrack bnd callq *0x12345678(%r8,%rcx,8)"); /* Expecting: call indirect 0 */1882 1883 /* jmp with/without notrack prefix */1884 1885 asm volatile("jmpq *%rax"); /* Expecting: jmp indirect 0 */1886 asm volatile("jmpq *(%rax)"); /* Expecting: jmp indirect 0 */1887 asm volatile("jmpq *(%r8)"); /* Expecting: jmp indirect 0 */1888 asm volatile("jmpq *(0x12345678)"); /* Expecting: jmp indirect 0 */1889 asm volatile("jmpq *0x12345678(%rax,%rcx,8)"); /* Expecting: jmp indirect 0 */1890 asm volatile("jmpq *0x12345678(%r8,%rcx,8)"); /* Expecting: jmp indirect 0 */1891 1892 asm volatile("bnd jmpq *%rax"); /* Expecting: jmp indirect 0 */1893 asm volatile("bnd jmpq *(%rax)"); /* Expecting: jmp indirect 0 */1894 asm volatile("bnd jmpq *(%r8)"); /* Expecting: jmp indirect 0 */1895 asm volatile("bnd jmpq *(0x12345678)"); /* Expecting: jmp indirect 0 */1896 asm volatile("bnd jmpq *0x12345678(%rax,%rcx,8)"); /* Expecting: jmp indirect 0 */1897 asm volatile("bnd jmpq *0x12345678(%r8,%rcx,8)"); /* Expecting: jmp indirect 0 */1898 1899 asm volatile("notrack jmpq *%rax"); /* Expecting: jmp indirect 0 */1900 asm volatile("notrack jmpq *(%rax)"); /* Expecting: jmp indirect 0 */1901 asm volatile("notrack jmpq *(%r8)"); /* Expecting: jmp indirect 0 */1902 asm volatile("notrack jmpq *(0x12345678)"); /* Expecting: jmp indirect 0 */1903 asm volatile("notrack jmpq *0x12345678(%rax,%rcx,8)"); /* Expecting: jmp indirect 0 */1904 asm volatile("notrack jmpq *0x12345678(%r8,%rcx,8)"); /* Expecting: jmp indirect 0 */1905 1906 asm volatile("notrack bnd jmpq *%rax"); /* Expecting: jmp indirect 0 */1907 asm volatile("notrack bnd jmpq *(%rax)"); /* Expecting: jmp indirect 0 */1908 asm volatile("notrack bnd jmpq *(%r8)"); /* Expecting: jmp indirect 0 */1909 asm volatile("notrack bnd jmpq *(0x12345678)"); /* Expecting: jmp indirect 0 */1910 asm volatile("notrack bnd jmpq *0x12345678(%rax,%rcx,8)"); /* Expecting: jmp indirect 0 */1911 asm volatile("notrack bnd jmpq *0x12345678(%r8,%rcx,8)"); /* Expecting: jmp indirect 0 */1912 1913 /* AMX */1914 1915 asm volatile("ldtilecfg (%rax,%rcx,8)");1916 asm volatile("ldtilecfg (%r8,%rcx,8)");1917 asm volatile("sttilecfg (%rax,%rcx,8)");1918 asm volatile("sttilecfg (%r8,%rcx,8)");1919 asm volatile("tdpbf16ps %tmm0, %tmm1, %tmm2");1920 asm volatile("tdpbssd %tmm0, %tmm1, %tmm2");1921 asm volatile("tdpbsud %tmm0, %tmm1, %tmm2");1922 asm volatile("tdpbusd %tmm0, %tmm1, %tmm2");1923 asm volatile("tdpbuud %tmm0, %tmm1, %tmm2");1924 asm volatile("tileloadd (%rax,%rcx,8), %tmm1");1925 asm volatile("tileloadd (%r8,%rcx,8), %tmm2");1926 asm volatile("tileloaddt1 (%rax,%rcx,8), %tmm1");1927 asm volatile("tileloaddt1 (%r8,%rcx,8), %tmm2");1928 asm volatile("tilerelease");1929 asm volatile("tilestored %tmm1, (%rax,%rcx,8)");1930 asm volatile("tilestored %tmm2, (%r8,%rcx,8)");1931 asm volatile("tilezero %tmm0");1932 asm volatile("tilezero %tmm7");1933 1934 /* User Interrupt */1935 1936 asm volatile("clui");1937 asm volatile("senduipi %rax");1938 asm volatile("senduipi %r8");1939 asm volatile("stui");1940 asm volatile("testui");1941 asm volatile("uiret");1942 1943 /* AVX512-FP16 */1944 1945 asm volatile("vaddph %zmm3, %zmm2, %zmm1");1946 asm volatile("vaddph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");1947 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");1948 asm volatile("vaddph %xmm3, %xmm2, %xmm1");1949 asm volatile("vaddph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");1950 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");1951 asm volatile("vaddph %ymm3, %ymm2, %ymm1");1952 asm volatile("vaddph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");1953 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");1954 asm volatile("vaddsh %xmm3, %xmm2, %xmm1");1955 asm volatile("vaddsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");1956 asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");1957 asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");1958 asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %zmm2, %k5");1959 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");1960 asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");1961 asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");1962 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");1963 asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");1964 asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %ymm2, %k5");1965 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");1966 asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");1967 asm volatile("vcmpsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");1968 asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");1969 asm volatile("vcomish %xmm2, %xmm1");1970 asm volatile("vcomish 0x12345678(%rax,%rcx,8), %xmm1");1971 asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");1972 asm volatile("vcvtdq2ph %zmm2, %ymm1");1973 asm volatile("vcvtdq2ph 0x12345678(%rax,%rcx,8), %ymm1");1974 asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");1975 asm volatile("vcvtdq2ph %xmm2, %xmm1");1976 asm volatile("vcvtdq2ph %ymm2, %xmm1");1977 asm volatile("vcvtpd2ph %zmm2, %xmm1");1978 asm volatile("vcvtpd2ph %xmm2, %xmm1");1979 asm volatile("vcvtpd2ph %ymm2, %xmm1");1980 asm volatile("vcvtph2dq %ymm2, %zmm1");1981 asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %zmm1");1982 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");1983 asm volatile("vcvtph2dq %xmm2, %xmm1");1984 asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %xmm1");1985 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");1986 asm volatile("vcvtph2dq %xmm2, %ymm1");1987 asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %ymm1");1988 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");1989 asm volatile("vcvtph2pd %xmm2, %zmm1");1990 asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %zmm1");1991 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");1992 asm volatile("vcvtph2pd %xmm2, %xmm1");1993 asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %xmm1");1994 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");1995 asm volatile("vcvtph2pd %xmm2, %ymm1");1996 asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %ymm1");1997 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");1998 asm volatile("vcvtph2ps %ymm2, %zmm1");1999 asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %zmm1");2000 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");2001 asm volatile("vcvtph2ps %xmm2, %xmm1");2002 asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");2003 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");2004 asm volatile("vcvtph2ps %xmm2, %ymm1");2005 asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");2006 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");2007 asm volatile("vcvtph2ps %xmm2, %xmm1");2008 asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");2009 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");2010 asm volatile("vcvtph2ps %xmm2, %ymm1");2011 asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");2012 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");2013 asm volatile("vcvtph2psx %ymm2, %zmm1");2014 asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %zmm1");2015 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");2016 asm volatile("vcvtph2psx %xmm2, %xmm1");2017 asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %xmm1");2018 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");2019 asm volatile("vcvtph2psx %xmm2, %ymm1");2020 asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %ymm1");2021 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");2022 asm volatile("vcvtph2qq %xmm2, %zmm1");2023 asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %zmm1");2024 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");2025 asm volatile("vcvtph2qq %xmm2, %xmm1");2026 asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %xmm1");2027 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");2028 asm volatile("vcvtph2qq %xmm2, %ymm1");2029 asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %ymm1");2030 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");2031 asm volatile("vcvtph2udq %ymm2, %zmm1");2032 asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %zmm1");2033 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");2034 asm volatile("vcvtph2udq %xmm2, %xmm1");2035 asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %xmm1");2036 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");2037 asm volatile("vcvtph2udq %xmm2, %ymm1");2038 asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %ymm1");2039 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");2040 asm volatile("vcvtph2uqq %xmm2, %zmm1");2041 asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %zmm1");2042 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");2043 asm volatile("vcvtph2uqq %xmm2, %xmm1");2044 asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %xmm1");2045 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");2046 asm volatile("vcvtph2uqq %xmm2, %ymm1");2047 asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %ymm1");2048 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");2049 asm volatile("vcvtph2uw %zmm2, %zmm1");2050 asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %zmm1");2051 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");2052 asm volatile("vcvtph2uw %xmm2, %xmm1");2053 asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %xmm1");2054 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");2055 asm volatile("vcvtph2uw %ymm2, %ymm1");2056 asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %ymm1");2057 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");2058 asm volatile("vcvtph2w %zmm2, %zmm1");2059 asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %zmm1");2060 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");2061 asm volatile("vcvtph2w %xmm2, %xmm1");2062 asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %xmm1");2063 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");2064 asm volatile("vcvtph2w %ymm2, %ymm1");2065 asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %ymm1");2066 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");2067 asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%rax,%rcx,8)");2068 asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");2069 asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");2070 asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%rax,%rcx,8)");2071 asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");2072 asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%rax,%rcx,8)");2073 asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");2074 asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");2075 asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");2076 asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");2077 asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%rax,%rcx,8)");2078 asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");2079 asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");2080 asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%rax,%rcx,8)");2081 asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");2082 asm volatile("vcvtps2phx %zmm2, %ymm1");2083 asm volatile("vcvtps2phx 0x12345678(%rax,%rcx,8), %ymm1");2084 asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");2085 asm volatile("vcvtps2phx %xmm2, %xmm1");2086 asm volatile("vcvtps2phx %ymm2, %xmm1");2087 asm volatile("vcvtqq2ph %zmm2, %xmm1");2088 asm volatile("vcvtqq2ph %xmm2, %xmm1");2089 asm volatile("vcvtqq2ph %ymm2, %xmm1");2090 asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2091 asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2092 asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");2093 asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %rax");2094 asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2095 asm volatile("vcvtsh2usi %xmm1, %eax");2096 asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %eax");2097 asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");2098 asm volatile("vcvtsh2usi %xmm1, %rax");2099 asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %rax");2100 asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %rax");2101 asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");2102 asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2103 asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2104 asm volatile("vcvtsi2sh %rax, %xmm2, %xmm1");2105 asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2106 asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2107 asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");2108 asm volatile("vcvtss2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2109 asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2110 asm volatile("vcvttph2dq %ymm2, %zmm1");2111 asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %zmm1");2112 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");2113 asm volatile("vcvttph2dq %xmm2, %xmm1");2114 asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %xmm1");2115 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");2116 asm volatile("vcvttph2dq %xmm2, %ymm1");2117 asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %ymm1");2118 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");2119 asm volatile("vcvttph2qq %xmm2, %zmm1");2120 asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %zmm1");2121 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");2122 asm volatile("vcvttph2qq %xmm2, %xmm1");2123 asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %xmm1");2124 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");2125 asm volatile("vcvttph2qq %xmm2, %ymm1");2126 asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %ymm1");2127 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");2128 asm volatile("vcvttph2udq %ymm2, %zmm1");2129 asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %zmm1");2130 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");2131 asm volatile("vcvttph2udq %xmm2, %xmm1");2132 asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %xmm1");2133 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");2134 asm volatile("vcvttph2udq %xmm2, %ymm1");2135 asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %ymm1");2136 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");2137 asm volatile("vcvttph2uqq %xmm2, %zmm1");2138 asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %zmm1");2139 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");2140 asm volatile("vcvttph2uqq %xmm2, %xmm1");2141 asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %xmm1");2142 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");2143 asm volatile("vcvttph2uqq %xmm2, %ymm1");2144 asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %ymm1");2145 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");2146 asm volatile("vcvttph2uw %zmm2, %zmm1");2147 asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %zmm1");2148 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");2149 asm volatile("vcvttph2uw %xmm2, %xmm1");2150 asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %xmm1");2151 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");2152 asm volatile("vcvttph2uw %ymm2, %ymm1");2153 asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %ymm1");2154 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");2155 asm volatile("vcvttph2w %zmm2, %zmm1");2156 asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %zmm1");2157 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");2158 asm volatile("vcvttph2w %xmm2, %xmm1");2159 asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %xmm1");2160 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");2161 asm volatile("vcvttph2w %ymm2, %ymm1");2162 asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %ymm1");2163 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");2164 asm volatile("vcvttsh2si %xmm1, %eax");2165 asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %eax");2166 asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");2167 asm volatile("vcvttsh2si %xmm1, %rax");2168 asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %rax");2169 asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %rax");2170 asm volatile("vcvttsh2usi %xmm1, %eax");2171 asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %eax");2172 asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");2173 asm volatile("vcvttsh2usi %xmm1, %rax");2174 asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %rax");2175 asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %rax");2176 asm volatile("vcvtudq2ph %zmm2, %ymm1");2177 asm volatile("vcvtudq2ph 0x12345678(%rax,%rcx,8), %ymm1");2178 asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");2179 asm volatile("vcvtudq2ph %xmm2, %xmm1");2180 asm volatile("vcvtudq2ph %ymm2, %xmm1");2181 asm volatile("vcvtuqq2ph %zmm2, %xmm1");2182 asm volatile("vcvtuqq2ph %xmm2, %xmm1");2183 asm volatile("vcvtuqq2ph %ymm2, %xmm1");2184 asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");2185 asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2186 asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2187 asm volatile("vcvtusi2sh %rax, %xmm2, %xmm1");2188 asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2189 asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2190 asm volatile("vcvtuw2ph %zmm2, %zmm1");2191 asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %zmm1");2192 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");2193 asm volatile("vcvtuw2ph %xmm2, %xmm1");2194 asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %xmm1");2195 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");2196 asm volatile("vcvtuw2ph %ymm2, %ymm1");2197 asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %ymm1");2198 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");2199 asm volatile("vcvtw2ph %zmm2, %zmm1");2200 asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %zmm1");2201 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");2202 asm volatile("vcvtw2ph %xmm2, %xmm1");2203 asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %xmm1");2204 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");2205 asm volatile("vcvtw2ph %ymm2, %ymm1");2206 asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %ymm1");2207 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");2208 asm volatile("vdivph %zmm3, %zmm2, %zmm1");2209 asm volatile("vdivph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2210 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2211 asm volatile("vdivph %xmm3, %xmm2, %xmm1");2212 asm volatile("vdivph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2213 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2214 asm volatile("vdivph %ymm3, %ymm2, %ymm1");2215 asm volatile("vdivph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2216 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2217 asm volatile("vdivsh %xmm3, %xmm2, %xmm1");2218 asm volatile("vdivsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2219 asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2220 asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");2221 asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2222 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2223 asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");2224 asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2225 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2226 asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");2227 asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2228 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2229 asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");2230 asm volatile("vfcmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2231 asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2232 asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");2233 asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2234 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2235 asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");2236 asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2237 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2238 asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");2239 asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2240 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2241 asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");2242 asm volatile("vfcmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2243 asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2244 asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");2245 asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2246 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2247 asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");2248 asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2249 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2250 asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");2251 asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2252 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2253 asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");2254 asm volatile("vfmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2255 asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2256 asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");2257 asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2258 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2259 asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");2260 asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2261 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2262 asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");2263 asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2264 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2265 asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");2266 asm volatile("vfmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2267 asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2268 asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");2269 asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2270 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2271 asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");2272 asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2273 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2274 asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");2275 asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2276 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2277 asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");2278 asm volatile("vfmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2279 asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2280 asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");2281 asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2282 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2283 asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");2284 asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2285 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2286 asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");2287 asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2288 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2289 asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");2290 asm volatile("vfmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2291 asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2292 asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");2293 asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2294 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2295 asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");2296 asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2297 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2298 asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");2299 asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2300 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2301 asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");2302 asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2303 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2304 asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");2305 asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2306 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2307 asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");2308 asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2309 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2310 asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");2311 asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2312 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2313 asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");2314 asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2315 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2316 asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");2317 asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2318 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2319 asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");2320 asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2321 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2322 asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");2323 asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2324 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2325 asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");2326 asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2327 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2328 asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");2329 asm volatile("vfmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2330 asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2331 asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");2332 asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2333 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2334 asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");2335 asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2336 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2337 asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");2338 asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2339 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2340 asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");2341 asm volatile("vfmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2342 asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2343 asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");2344 asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2345 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2346 asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");2347 asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2348 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2349 asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");2350 asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2351 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2352 asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");2353 asm volatile("vfmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2354 asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2355 asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");2356 asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2357 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2358 asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");2359 asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2360 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2361 asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");2362 asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2363 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2364 asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");2365 asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2366 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2367 asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");2368 asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2369 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2370 asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");2371 asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2372 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2373 asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");2374 asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2375 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2376 asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");2377 asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2378 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2379 asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");2380 asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2381 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2382 asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");2383 asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2384 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2385 asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");2386 asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2387 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2388 asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");2389 asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2390 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2391 asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");2392 asm volatile("vfmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2393 asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2394 asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");2395 asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2396 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2397 asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");2398 asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2399 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2400 asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");2401 asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2402 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2403 asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");2404 asm volatile("vfnmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2405 asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2406 asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");2407 asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2408 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2409 asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");2410 asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2411 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2412 asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");2413 asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2414 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2415 asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");2416 asm volatile("vfnmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2417 asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2418 asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");2419 asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2420 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2421 asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");2422 asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2423 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2424 asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");2425 asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2426 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2427 asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");2428 asm volatile("vfnmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2429 asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2430 asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");2431 asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2432 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2433 asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");2434 asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2435 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2436 asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");2437 asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2438 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2439 asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");2440 asm volatile("vfnmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2441 asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2442 asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");2443 asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2444 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2445 asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");2446 asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2447 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2448 asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");2449 asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2450 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2451 asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");2452 asm volatile("vfnmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2453 asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2454 asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");2455 asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2456 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2457 asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");2458 asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2459 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2460 asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");2461 asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2462 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2463 asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");2464 asm volatile("vfnmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2465 asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2466 asm volatile("vfpclassph $0x12, %zmm1, %k5");2467 asm volatile("vfpclassph $0x12, %xmm1, %k5");2468 asm volatile("vfpclassph $0x12, %ymm1, %k5");2469 asm volatile("vfpclasssh $0x12, %xmm1, %k5");2470 asm volatile("vfpclasssh $0x12, 0x12345678(%rax,%rcx,8), %k5");2471 asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");2472 asm volatile("vgetexpph %zmm2, %zmm1");2473 asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %zmm1");2474 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");2475 asm volatile("vgetexpph %xmm2, %xmm1");2476 asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %xmm1");2477 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");2478 asm volatile("vgetexpph %ymm2, %ymm1");2479 asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %ymm1");2480 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");2481 asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");2482 asm volatile("vgetexpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2483 asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2484 asm volatile("vgetmantph $0x12, %zmm2, %zmm1");2485 asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");2486 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");2487 asm volatile("vgetmantph $0x12, %xmm2, %xmm1");2488 asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");2489 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");2490 asm volatile("vgetmantph $0x12, %ymm2, %ymm1");2491 asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");2492 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");2493 asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");2494 asm volatile("vgetmantsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2495 asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2496 asm volatile("vmaxph %zmm3, %zmm2, %zmm1");2497 asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2498 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2499 asm volatile("vmaxph %xmm3, %xmm2, %xmm1");2500 asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2501 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2502 asm volatile("vmaxph %ymm3, %ymm2, %ymm1");2503 asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2504 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2505 asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");2506 asm volatile("vmaxsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2507 asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2508 asm volatile("vminph %zmm3, %zmm2, %zmm1");2509 asm volatile("vminph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2510 asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2511 asm volatile("vminph %xmm3, %xmm2, %xmm1");2512 asm volatile("vminph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2513 asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2514 asm volatile("vminph %ymm3, %ymm2, %ymm1");2515 asm volatile("vminph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2516 asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2517 asm volatile("vminsh %xmm3, %xmm2, %xmm1");2518 asm volatile("vminsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2519 asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2520 asm volatile("vmovsh %xmm1, 0x12345678(%rax,%rcx,8)");2521 asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");2522 asm volatile("vmovsh 0x12345678(%rax,%rcx,8), %xmm1");2523 asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");2524 asm volatile("vmovsh %xmm3, %xmm2, %xmm1");2525 asm volatile("vmovw %xmm1, %eax");2526 asm volatile("vmovw %xmm1, 0x12345678(%rax,%rcx,8)");2527 asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");2528 asm volatile("vmovw %eax, %xmm1");2529 asm volatile("vmovw 0x12345678(%rax,%rcx,8), %xmm1");2530 asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");2531 asm volatile("vmulph %zmm3, %zmm2, %zmm1");2532 asm volatile("vmulph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2533 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2534 asm volatile("vmulph %xmm3, %xmm2, %xmm1");2535 asm volatile("vmulph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2536 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2537 asm volatile("vmulph %ymm3, %ymm2, %ymm1");2538 asm volatile("vmulph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2539 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2540 asm volatile("vmulsh %xmm3, %xmm2, %xmm1");2541 asm volatile("vmulsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2542 asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2543 asm volatile("vrcpph %zmm2, %zmm1");2544 asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %zmm1");2545 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");2546 asm volatile("vrcpph %xmm2, %xmm1");2547 asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %xmm1");2548 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");2549 asm volatile("vrcpph %ymm2, %ymm1");2550 asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %ymm1");2551 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");2552 asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");2553 asm volatile("vrcpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2554 asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2555 asm volatile("vreduceph $0x12, %zmm2, %zmm1");2556 asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");2557 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");2558 asm volatile("vreduceph $0x12, %xmm2, %xmm1");2559 asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");2560 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");2561 asm volatile("vreduceph $0x12, %ymm2, %ymm1");2562 asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");2563 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");2564 asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");2565 asm volatile("vreducesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2566 asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2567 asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");2568 asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");2569 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");2570 asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");2571 asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");2572 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");2573 asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");2574 asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");2575 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");2576 asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");2577 asm volatile("vrndscalesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2578 asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2579 asm volatile("vrsqrtph %zmm2, %zmm1");2580 asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %zmm1");2581 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");2582 asm volatile("vrsqrtph %xmm2, %xmm1");2583 asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %xmm1");2584 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");2585 asm volatile("vrsqrtph %ymm2, %ymm1");2586 asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %ymm1");2587 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");2588 asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");2589 asm volatile("vrsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2590 asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2591 asm volatile("vscalefph %zmm3, %zmm2, %zmm1");2592 asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2593 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2594 asm volatile("vscalefph %xmm3, %xmm2, %xmm1");2595 asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2596 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2597 asm volatile("vscalefph %ymm3, %ymm2, %ymm1");2598 asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2599 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2600 asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");2601 asm volatile("vscalefsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2602 asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2603 asm volatile("vsqrtph %zmm2, %zmm1");2604 asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %zmm1");2605 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");2606 asm volatile("vsqrtph %xmm2, %xmm1");2607 asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %xmm1");2608 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");2609 asm volatile("vsqrtph %ymm2, %ymm1");2610 asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %ymm1");2611 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");2612 asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");2613 asm volatile("vsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2614 asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2615 asm volatile("vsubph %zmm3, %zmm2, %zmm1");2616 asm volatile("vsubph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");2617 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");2618 asm volatile("vsubph %xmm3, %xmm2, %xmm1");2619 asm volatile("vsubph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2620 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2621 asm volatile("vsubph %ymm3, %ymm2, %ymm1");2622 asm volatile("vsubph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");2623 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");2624 asm volatile("vsubsh %xmm3, %xmm2, %xmm1");2625 asm volatile("vsubsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");2626 asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");2627 asm volatile("vucomish %xmm2, %xmm1");2628 asm volatile("vucomish 0x12345678(%rax,%rcx,8), %xmm1");2629 asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");2630 2631 /* Key Locker */2632 2633 asm volatile("loadiwkey %xmm1, %xmm2");2634 asm volatile("encodekey128 %eax, %edx");2635 asm volatile("encodekey256 %eax, %edx");2636 asm volatile("aesenc128kl 0x77(%rdx), %xmm3");2637 asm volatile("aesenc256kl 0x77(%rdx), %xmm3");2638 asm volatile("aesdec128kl 0x77(%rdx), %xmm3");2639 asm volatile("aesdec256kl 0x77(%rdx), %xmm3");2640 asm volatile("aesencwide128kl 0x77(%rdx)");2641 asm volatile("aesencwide256kl 0x77(%rdx)");2642 asm volatile("aesdecwide128kl 0x77(%rdx)");2643 asm volatile("aesdecwide256kl 0x77(%rdx)");2644 2645 /* Remote Atomic Operations */2646 2647 asm volatile("aadd %ecx,(%rax)");2648 asm volatile("aadd %edx,(%r8)");2649 asm volatile("aadd %edx,0x12345678(%rax,%rcx,8)");2650 asm volatile("aadd %edx,0x12345678(%r8,%rcx,8)");2651 asm volatile("aadd %rcx,(%rax)");2652 asm volatile("aadd %rdx,(%r8)");2653 asm volatile("aadd %rdx,(0x12345678)");2654 asm volatile("aadd %rdx,0x12345678(%rax,%rcx,8)");2655 asm volatile("aadd %rdx,0x12345678(%r8,%rcx,8)");2656 2657 asm volatile("aand %ecx,(%rax)");2658 asm volatile("aand %edx,(%r8)");2659 asm volatile("aand %edx,0x12345678(%rax,%rcx,8)");2660 asm volatile("aand %edx,0x12345678(%r8,%rcx,8)");2661 asm volatile("aand %rcx,(%rax)");2662 asm volatile("aand %rdx,(%r8)");2663 asm volatile("aand %rdx,(0x12345678)");2664 asm volatile("aand %rdx,0x12345678(%rax,%rcx,8)");2665 asm volatile("aand %rdx,0x12345678(%r8,%rcx,8)");2666 2667 asm volatile("aor %ecx,(%rax)");2668 asm volatile("aor %edx,(%r8)");2669 asm volatile("aor %edx,0x12345678(%rax,%rcx,8)");2670 asm volatile("aor %edx,0x12345678(%r8,%rcx,8)");2671 asm volatile("aor %rcx,(%rax)");2672 asm volatile("aor %rdx,(%r8)");2673 asm volatile("aor %rdx,(0x12345678)");2674 asm volatile("aor %rdx,0x12345678(%rax,%rcx,8)");2675 asm volatile("aor %rdx,0x12345678(%r8,%rcx,8)");2676 2677 asm volatile("axor %ecx,(%rax)");2678 asm volatile("axor %edx,(%r8)");2679 asm volatile("axor %edx,0x12345678(%rax,%rcx,8)");2680 asm volatile("axor %edx,0x12345678(%r8,%rcx,8)");2681 asm volatile("axor %rcx,(%rax)");2682 asm volatile("axor %rdx,(%r8)");2683 asm volatile("axor %rdx,(0x12345678)");2684 asm volatile("axor %rdx,0x12345678(%rax,%rcx,8)");2685 asm volatile("axor %rdx,0x12345678(%r8,%rcx,8)");2686 2687 /* VEX CMPxxXADD */2688 2689 asm volatile("cmpbexadd %ebx,%ecx,(%r9)");2690 asm volatile("cmpbxadd %ebx,%ecx,(%r9)");2691 asm volatile("cmplexadd %ebx,%ecx,(%r9)");2692 asm volatile("cmplxadd %ebx,%ecx,(%r9)");2693 asm volatile("cmpnbexadd %ebx,%ecx,(%r9)");2694 asm volatile("cmpnbxadd %ebx,%ecx,(%r9)");2695 asm volatile("cmpnlexadd %ebx,%ecx,(%r9)");2696 asm volatile("cmpnlxadd %ebx,%ecx,(%r9)");2697 asm volatile("cmpnoxadd %ebx,%ecx,(%r9)");2698 asm volatile("cmpnpxadd %ebx,%ecx,(%r9)");2699 asm volatile("cmpnsxadd %ebx,%ecx,(%r9)");2700 asm volatile("cmpnzxadd %ebx,%ecx,(%r9)");2701 asm volatile("cmpoxadd %ebx,%ecx,(%r9)");2702 asm volatile("cmppxadd %ebx,%ecx,(%r9)");2703 asm volatile("cmpsxadd %ebx,%ecx,(%r9)");2704 asm volatile("cmpzxadd %ebx,%ecx,(%r9)");2705 2706 /* Pre-fetch */2707 2708 asm volatile("prefetch (%rax)");2709 asm volatile("prefetcht0 (%rax)");2710 asm volatile("prefetcht1 (%rax)");2711 asm volatile("prefetcht2 (%rax)");2712 asm volatile("prefetchnta (%rax)");2713 asm volatile("prefetchit0 0x12345678(%rip)");2714 asm volatile("prefetchit1 0x12345678(%rip)");2715 2716 /* MSR List */2717 2718 asm volatile("rdmsrlist");2719 asm volatile("wrmsrlist");2720 2721 /* User Read/Write MSR */2722 2723 asm volatile("urdmsr %rdx,%rax");2724 asm volatile("urdmsr %rdx,%r22");2725 asm volatile("urdmsr $0x7f,%r12");2726 asm volatile("uwrmsr %rax,%rdx");2727 asm volatile("uwrmsr %r22,%rdx");2728 asm volatile("uwrmsr %r12,$0x7f");2729 2730 /* AVX NE Convert */2731 2732 asm volatile("vbcstnebf162ps (%rcx),%xmm6");2733 asm volatile("vbcstnesh2ps (%rcx),%xmm6");2734 asm volatile("vcvtneebf162ps (%rcx),%xmm6");2735 asm volatile("vcvtneeph2ps (%rcx),%xmm6");2736 asm volatile("vcvtneobf162ps (%rcx),%xmm6");2737 asm volatile("vcvtneoph2ps (%rcx),%xmm6");2738 asm volatile("vcvtneps2bf16 %xmm1,%xmm6");2739 2740 /* FRED */2741 2742 asm volatile("erets"); /* Expecting: erets indirect 0 */2743 asm volatile("eretu"); /* Expecting: eretu indirect 0 */2744 2745 /* AMX Complex */2746 2747 asm volatile("tcmmimfp16ps %tmm1,%tmm2,%tmm3");2748 asm volatile("tcmmrlfp16ps %tmm1,%tmm2,%tmm3");2749 2750 /* AMX FP16 */2751 2752 asm volatile("tdpfp16ps %tmm1,%tmm2,%tmm3");2753 2754 /* REX2 */2755 2756 asm volatile("test $0x5, %r18b");2757 asm volatile("test $0x5, %r18d");2758 asm volatile("test $0x5, %r18");2759 asm volatile("test $0x5, %r18w");2760 asm volatile("imull %eax, %r14d");2761 asm volatile("imull %eax, %r17d");2762 asm volatile("punpckldq (%r18), %mm2");2763 asm volatile("leal (%rax), %r16d");2764 asm volatile("leal (%rax), %r31d");2765 asm volatile("leal (,%r16), %eax");2766 asm volatile("leal (,%r31), %eax");2767 asm volatile("leal (%r16), %eax");2768 asm volatile("leal (%r31), %eax");2769 asm volatile("leaq (%rax), %r15");2770 asm volatile("leaq (%rax), %r16");2771 asm volatile("leaq (%r15), %rax");2772 asm volatile("leaq (%r16), %rax");2773 asm volatile("leaq (,%r15), %rax");2774 asm volatile("leaq (,%r16), %rax");2775 asm volatile("add (%r16), %r8");2776 asm volatile("add (%r16), %r15");2777 asm volatile("mov (,%r9), %r16");2778 asm volatile("mov (,%r14), %r16");2779 asm volatile("sub (%r10), %r31");2780 asm volatile("sub (%r13), %r31");2781 asm volatile("leal 1(%r16, %r21), %eax");2782 asm volatile("leal 1(%r16, %r26), %r31d");2783 asm volatile("leal 129(%r21, %r9), %eax");2784 asm volatile("leal 129(%r26, %r9), %r31d");2785 /*2786 * Have to use .byte for jmpabs because gas does not support the2787 * mnemonic for some reason, but then it also gets the source line wrong2788 * with .byte, so the following is a workaround.2789 */2790 asm volatile(""); /* Expecting: jmp indirect 0 */2791 asm volatile(".byte 0xd5, 0x00, 0xa1, 0xef, 0xcd, 0xab, 0x90, 0x78, 0x56, 0x34, 0x12");2792 asm volatile("pushp %rbx");2793 asm volatile("pushp %r16");2794 asm volatile("pushp %r31");2795 asm volatile("popp %r31");2796 asm volatile("popp %r16");2797 asm volatile("popp %rbx");2798 2799 /* APX */2800 2801 asm volatile("bextr %r25d,%edx,%r10d");2802 asm volatile("bextr %r25d,0x123(%r31,%rax,4),%edx");2803 asm volatile("bextr %r31,%r15,%r11");2804 asm volatile("bextr %r31,0x123(%r31,%rax,4),%r15");2805 asm volatile("blsi %r25d,%edx");2806 asm volatile("blsi %r31,%r15");2807 asm volatile("blsi 0x123(%r31,%rax,4),%r25d");2808 asm volatile("blsi 0x123(%r31,%rax,4),%r31");2809 asm volatile("blsmsk %r25d,%edx");2810 asm volatile("blsmsk %r31,%r15");2811 asm volatile("blsmsk 0x123(%r31,%rax,4),%r25d");2812 asm volatile("blsmsk 0x123(%r31,%rax,4),%r31");2813 asm volatile("blsr %r25d,%edx");2814 asm volatile("blsr %r31,%r15");2815 asm volatile("blsr 0x123(%r31,%rax,4),%r25d");2816 asm volatile("blsr 0x123(%r31,%rax,4),%r31");2817 asm volatile("bzhi %r25d,%edx,%r10d");2818 asm volatile("bzhi %r25d,0x123(%r31,%rax,4),%edx");2819 asm volatile("bzhi %r31,%r15,%r11");2820 asm volatile("bzhi %r31,0x123(%r31,%rax,4),%r15");2821 asm volatile("cmpbexadd %r25d,%edx,0x123(%r31,%rax,4)");2822 asm volatile("cmpbexadd %r31,%r15,0x123(%r31,%rax,4)");2823 asm volatile("cmpbxadd %r25d,%edx,0x123(%r31,%rax,4)");2824 asm volatile("cmpbxadd %r31,%r15,0x123(%r31,%rax,4)");2825 asm volatile("cmplxadd %r25d,%edx,0x123(%r31,%rax,4)");2826 asm volatile("cmplxadd %r31,%r15,0x123(%r31,%rax,4)");2827 asm volatile("cmpnbexadd %r25d,%edx,0x123(%r31,%rax,4)");2828 asm volatile("cmpnbexadd %r31,%r15,0x123(%r31,%rax,4)");2829 asm volatile("cmpnbxadd %r25d,%edx,0x123(%r31,%rax,4)");2830 asm volatile("cmpnbxadd %r31,%r15,0x123(%r31,%rax,4)");2831 asm volatile("cmpnlexadd %r25d,%edx,0x123(%r31,%rax,4)");2832 asm volatile("cmpnlexadd %r31,%r15,0x123(%r31,%rax,4)");2833 asm volatile("cmpnlxadd %r25d,%edx,0x123(%r31,%rax,4)");2834 asm volatile("cmpnlxadd %r31,%r15,0x123(%r31,%rax,4)");2835 asm volatile("cmpnoxadd %r25d,%edx,0x123(%r31,%rax,4)");2836 asm volatile("cmpnoxadd %r31,%r15,0x123(%r31,%rax,4)");2837 asm volatile("cmpnpxadd %r25d,%edx,0x123(%r31,%rax,4)");2838 asm volatile("cmpnpxadd %r31,%r15,0x123(%r31,%rax,4)");2839 asm volatile("cmpnsxadd %r25d,%edx,0x123(%r31,%rax,4)");2840 asm volatile("cmpnsxadd %r31,%r15,0x123(%r31,%rax,4)");2841 asm volatile("cmpnzxadd %r25d,%edx,0x123(%r31,%rax,4)");2842 asm volatile("cmpnzxadd %r31,%r15,0x123(%r31,%rax,4)");2843 asm volatile("cmpoxadd %r25d,%edx,0x123(%r31,%rax,4)");2844 asm volatile("cmpoxadd %r31,%r15,0x123(%r31,%rax,4)");2845 asm volatile("cmppxadd %r25d,%edx,0x123(%r31,%rax,4)");2846 asm volatile("cmppxadd %r31,%r15,0x123(%r31,%rax,4)");2847 asm volatile("cmpsxadd %r25d,%edx,0x123(%r31,%rax,4)");2848 asm volatile("cmpsxadd %r31,%r15,0x123(%r31,%rax,4)");2849 asm volatile("cmpzxadd %r25d,%edx,0x123(%r31,%rax,4)");2850 asm volatile("cmpzxadd %r31,%r15,0x123(%r31,%rax,4)");2851 asm volatile("crc32q %r31, %r22");2852 asm volatile("crc32q (%r31), %r22");2853 asm volatile("crc32b %r19b, %r17");2854 asm volatile("crc32b %r19b, %r21d");2855 asm volatile("crc32b (%r19),%ebx");2856 asm volatile("crc32l %r31d, %r23d");2857 asm volatile("crc32l (%r31), %r23d");2858 asm volatile("crc32w %r31w, %r21d");2859 asm volatile("crc32w (%r31),%r21d");2860 asm volatile("crc32 %rax, %r18");2861 asm volatile("enqcmd 0x123(%r31d,%eax,4),%r25d");2862 asm volatile("enqcmd 0x123(%r31,%rax,4),%r31");2863 asm volatile("enqcmds 0x123(%r31d,%eax,4),%r25d");2864 asm volatile("enqcmds 0x123(%r31,%rax,4),%r31");2865 asm volatile("invept 0x123(%r31,%rax,4),%r31");2866 asm volatile("invpcid 0x123(%r31,%rax,4),%r31");2867 asm volatile("invvpid 0x123(%r31,%rax,4),%r31");2868 asm volatile("kmovb %k5,%r25d");2869 asm volatile("kmovb %k5,0x123(%r31,%rax,4)");2870 asm volatile("kmovb %r25d,%k5");2871 asm volatile("kmovb 0x123(%r31,%rax,4),%k5");2872 asm volatile("kmovd %k5,%r25d");2873 asm volatile("kmovd %k5,0x123(%r31,%rax,4)");2874 asm volatile("kmovd %r25d,%k5");2875 asm volatile("kmovd 0x123(%r31,%rax,4),%k5");2876 asm volatile("kmovq %k5,%r31");2877 asm volatile("kmovq %k5,0x123(%r31,%rax,4)");2878 asm volatile("kmovq %r31,%k5");2879 asm volatile("kmovq 0x123(%r31,%rax,4),%k5");2880 asm volatile("kmovw %k5,%r25d");2881 asm volatile("kmovw %k5,0x123(%r31,%rax,4)");2882 asm volatile("kmovw %r25d,%k5");2883 asm volatile("kmovw 0x123(%r31,%rax,4),%k5");2884 asm volatile("ldtilecfg 0x123(%r31,%rax,4)");2885 asm volatile("movbe %r18w,%ax");2886 asm volatile("movbe %r15w,%ax");2887 asm volatile("movbe %r18w,0x123(%r16,%rax,4)");2888 asm volatile("movbe %r18w,0x123(%r31,%rax,4)");2889 asm volatile("movbe %r25d,%edx");2890 asm volatile("movbe %r15d,%edx");2891 asm volatile("movbe %r25d,0x123(%r16,%rax,4)");2892 asm volatile("movbe %r31,%r15");2893 asm volatile("movbe %r8,%r15");2894 asm volatile("movbe %r31,0x123(%r16,%rax,4)");2895 asm volatile("movbe %r31,0x123(%r31,%rax,4)");2896 asm volatile("movbe 0x123(%r16,%rax,4),%r31");2897 asm volatile("movbe 0x123(%r31,%rax,4),%r18w");2898 asm volatile("movbe 0x123(%r31,%rax,4),%r25d");2899 asm volatile("movdir64b 0x123(%r31d,%eax,4),%r25d");2900 asm volatile("movdir64b 0x123(%r31,%rax,4),%r31");2901 asm volatile("movdiri %r25d,0x123(%r31,%rax,4)");2902 asm volatile("movdiri %r31,0x123(%r31,%rax,4)");2903 asm volatile("pdep %r25d,%edx,%r10d");2904 asm volatile("pdep %r31,%r15,%r11");2905 asm volatile("pdep 0x123(%r31,%rax,4),%r25d,%edx");2906 asm volatile("pdep 0x123(%r31,%rax,4),%r31,%r15");2907 asm volatile("pext %r25d,%edx,%r10d");2908 asm volatile("pext %r31,%r15,%r11");2909 asm volatile("pext 0x123(%r31,%rax,4),%r25d,%edx");2910 asm volatile("pext 0x123(%r31,%rax,4),%r31,%r15");2911 asm volatile("shlx %r25d,%edx,%r10d");2912 asm volatile("shlx %r25d,0x123(%r31,%rax,4),%edx");2913 asm volatile("shlx %r31,%r15,%r11");2914 asm volatile("shlx %r31,0x123(%r31,%rax,4),%r15");2915 asm volatile("shrx %r25d,%edx,%r10d");2916 asm volatile("shrx %r25d,0x123(%r31,%rax,4),%edx");2917 asm volatile("shrx %r31,%r15,%r11");2918 asm volatile("shrx %r31,0x123(%r31,%rax,4),%r15");2919 asm volatile("sttilecfg 0x123(%r31,%rax,4)");2920 asm volatile("tileloadd 0x123(%r31,%rax,4),%tmm6");2921 asm volatile("tileloaddt1 0x123(%r31,%rax,4),%tmm6");2922 asm volatile("tilestored %tmm6,0x123(%r31,%rax,4)");2923 asm volatile("vbroadcastf128 (%r16),%ymm3");2924 asm volatile("vbroadcasti128 (%r16),%ymm3");2925 asm volatile("vextractf128 $1,%ymm3,(%r16)");2926 asm volatile("vextracti128 $1,%ymm3,(%r16)");2927 asm volatile("vinsertf128 $1,(%r16),%ymm3,%ymm8");2928 asm volatile("vinserti128 $1,(%r16),%ymm3,%ymm8");2929 asm volatile("vroundpd $1,(%r24),%xmm6");2930 asm volatile("vroundps $2,(%r24),%xmm6");2931 asm volatile("vroundsd $3,(%r24),%xmm6,%xmm3");2932 asm volatile("vroundss $4,(%r24),%xmm6,%xmm3");2933 asm volatile("wrssd %r25d,0x123(%r31,%rax,4)");2934 asm volatile("wrssq %r31,0x123(%r31,%rax,4)");2935 asm volatile("wrussd %r25d,0x123(%r31,%rax,4)");2936 asm volatile("wrussq %r31,0x123(%r31,%rax,4)");2937 2938 /* APX new data destination */2939 2940 asm volatile("adc $0x1234,%ax,%r30w");2941 asm volatile("adc %r15b,%r17b,%r18b");2942 asm volatile("adc %r15d,(%r8),%r18d");2943 asm volatile("adc (%r15,%rax,1),%r16b,%r8b");2944 asm volatile("adc (%r15,%rax,1),%r16w,%r8w");2945 asm volatile("adcl $0x11,(%r19,%rax,4),%r20d");2946 asm volatile("adcx %r15d,%r8d,%r18d");2947 asm volatile("adcx (%r15,%r31,1),%r8");2948 asm volatile("adcx (%r15,%r31,1),%r8d,%r18d");2949 asm volatile("add $0x1234,%ax,%r30w");2950 asm volatile("add $0x12344433,%r15,%r16");2951 asm volatile("add $0x34,%r13b,%r17b");2952 asm volatile("add $0xfffffffff4332211,%rax,%r8");2953 asm volatile("add %r31,%r8,%r16");2954 asm volatile("add %r31,(%r8),%r16");2955 asm volatile("add %r31,(%r8,%r16,8),%r16");2956 asm volatile("add %r31b,%r8b,%r16b");2957 asm volatile("add %r31d,%r8d,%r16d");2958 asm volatile("add %r31w,%r8w,%r16w");2959 asm volatile("add (%r31),%r8,%r16");2960 asm volatile("add 0x9090(%r31,%r16,1),%r8,%r16");2961 asm volatile("addb %r31b,%r8b,%r16b");2962 asm volatile("addl %r31d,%r8d,%r16d");2963 asm volatile("addl $0x11,(%r19,%rax,4),%r20d");2964 asm volatile("addq %r31,%r8,%r16");2965 asm volatile("addq $0x12344433,(%r15,%rcx,4),%r16");2966 asm volatile("addw %r31w,%r8w,%r16w");2967 asm volatile("adox %r15d,%r8d,%r18d");2968 asm volatile("{load} add %r31,%r8,%r16");2969 asm volatile("{store} add %r31,%r8,%r16");2970 asm volatile("adox (%r15,%r31,1),%r8");2971 asm volatile("adox (%r15,%r31,1),%r8d,%r18d");2972 asm volatile("and $0x1234,%ax,%r30w");2973 asm volatile("and %r15b,%r17b,%r18b");2974 asm volatile("and %r15d,(%r8),%r18d");2975 asm volatile("and (%r15,%rax,1),%r16b,%r8b");2976 asm volatile("and (%r15,%rax,1),%r16w,%r8w");2977 asm volatile("andl $0x11,(%r19,%rax,4),%r20d");2978 asm volatile("cmova 0x90909090(%eax),%edx,%r8d");2979 asm volatile("cmovae 0x90909090(%eax),%edx,%r8d");2980 asm volatile("cmovb 0x90909090(%eax),%edx,%r8d");2981 asm volatile("cmovbe 0x90909090(%eax),%edx,%r8d");2982 asm volatile("cmove 0x90909090(%eax),%edx,%r8d");2983 asm volatile("cmovg 0x90909090(%eax),%edx,%r8d");2984 asm volatile("cmovge 0x90909090(%eax),%edx,%r8d");2985 asm volatile("cmovl 0x90909090(%eax),%edx,%r8d");2986 asm volatile("cmovle 0x90909090(%eax),%edx,%r8d");2987 asm volatile("cmovne 0x90909090(%eax),%edx,%r8d");2988 asm volatile("cmovno 0x90909090(%eax),%edx,%r8d");2989 asm volatile("cmovnp 0x90909090(%eax),%edx,%r8d");2990 asm volatile("cmovns 0x90909090(%eax),%edx,%r8d");2991 asm volatile("cmovo 0x90909090(%eax),%edx,%r8d");2992 asm volatile("cmovp 0x90909090(%eax),%edx,%r8d");2993 asm volatile("cmovs 0x90909090(%eax),%edx,%r8d");2994 asm volatile("dec %rax,%r17");2995 asm volatile("decb (%r31,%r12,1),%r8b");2996 asm volatile("imul 0x909(%rax,%r31,8),%rdx,%r25");2997 asm volatile("imul 0x90909(%eax),%edx,%r8d");2998 asm volatile("inc %r31,%r16");2999 asm volatile("inc %r31,%r8");3000 asm volatile("inc %rax,%rbx");3001 asm volatile("neg %rax,%r17");3002 asm volatile("negb (%r31,%r12,1),%r8b");3003 asm volatile("not %rax,%r17");3004 asm volatile("notb (%r31,%r12,1),%r8b");3005 asm volatile("or $0x1234,%ax,%r30w");3006 asm volatile("or %r15b,%r17b,%r18b");3007 asm volatile("or %r15d,(%r8),%r18d");3008 asm volatile("or (%r15,%rax,1),%r16b,%r8b");3009 asm volatile("or (%r15,%rax,1),%r16w,%r8w");3010 asm volatile("orl $0x11,(%r19,%rax,4),%r20d");3011 asm volatile("rcl $0x2,%r12b,%r31b");3012 asm volatile("rcl %cl,%r16b,%r8b");3013 asm volatile("rclb $0x1,(%rax),%r31b");3014 asm volatile("rcll $0x2,(%rax),%r31d");3015 asm volatile("rclw $0x1,(%rax),%r31w");3016 asm volatile("rclw %cl,(%r19,%rax,4),%r31w");3017 asm volatile("rcr $0x2,%r12b,%r31b");3018 asm volatile("rcr %cl,%r16b,%r8b");3019 asm volatile("rcrb $0x1,(%rax),%r31b");3020 asm volatile("rcrl $0x2,(%rax),%r31d");3021 asm volatile("rcrw $0x1,(%rax),%r31w");3022 asm volatile("rcrw %cl,(%r19,%rax,4),%r31w");3023 asm volatile("rol $0x2,%r12b,%r31b");3024 asm volatile("rol %cl,%r16b,%r8b");3025 asm volatile("rolb $0x1,(%rax),%r31b");3026 asm volatile("roll $0x2,(%rax),%r31d");3027 asm volatile("rolw $0x1,(%rax),%r31w");3028 asm volatile("rolw %cl,(%r19,%rax,4),%r31w");3029 asm volatile("ror $0x2,%r12b,%r31b");3030 asm volatile("ror %cl,%r16b,%r8b");3031 asm volatile("rorb $0x1,(%rax),%r31b");3032 asm volatile("rorl $0x2,(%rax),%r31d");3033 asm volatile("rorw $0x1,(%rax),%r31w");3034 asm volatile("rorw %cl,(%r19,%rax,4),%r31w");3035 asm volatile("sar $0x2,%r12b,%r31b");3036 asm volatile("sar %cl,%r16b,%r8b");3037 asm volatile("sarb $0x1,(%rax),%r31b");3038 asm volatile("sarl $0x2,(%rax),%r31d");3039 asm volatile("sarw $0x1,(%rax),%r31w");3040 asm volatile("sarw %cl,(%r19,%rax,4),%r31w");3041 asm volatile("sbb $0x1234,%ax,%r30w");3042 asm volatile("sbb %r15b,%r17b,%r18b");3043 asm volatile("sbb %r15d,(%r8),%r18d");3044 asm volatile("sbb (%r15,%rax,1),%r16b,%r8b");3045 asm volatile("sbb (%r15,%rax,1),%r16w,%r8w");3046 asm volatile("sbbl $0x11,(%r19,%rax,4),%r20d");3047 asm volatile("shl $0x2,%r12b,%r31b");3048 asm volatile("shl $0x2,%r12b,%r31b");3049 asm volatile("shl %cl,%r16b,%r8b");3050 asm volatile("shl %cl,%r16b,%r8b");3051 asm volatile("shlb $0x1,(%rax),%r31b");3052 asm volatile("shlb $0x1,(%rax),%r31b");3053 asm volatile("shld $0x1,%r12,(%rax),%r31");3054 asm volatile("shld $0x2,%r15d,(%rax),%r31d");3055 asm volatile("shld $0x2,%r8w,%r12w,%r31w");3056 asm volatile("shld %cl,%r12,%r16,%r8");3057 asm volatile("shld %cl,%r13w,(%r19,%rax,4),%r31w");3058 asm volatile("shld %cl,%r9w,(%rax),%r31w");3059 asm volatile("shll $0x2,(%rax),%r31d");3060 asm volatile("shll $0x2,(%rax),%r31d");3061 asm volatile("shlw $0x1,(%rax),%r31w");3062 asm volatile("shlw $0x1,(%rax),%r31w");3063 asm volatile("shlw %cl,(%r19,%rax,4),%r31w");3064 asm volatile("shlw %cl,(%r19,%rax,4),%r31w");3065 asm volatile("shr $0x2,%r12b,%r31b");3066 asm volatile("shr %cl,%r16b,%r8b");3067 asm volatile("shrb $0x1,(%rax),%r31b");3068 asm volatile("shrd $0x1,%r12,(%rax),%r31");3069 asm volatile("shrd $0x2,%r15d,(%rax),%r31d");3070 asm volatile("shrd $0x2,%r8w,%r12w,%r31w");3071 asm volatile("shrd %cl,%r12,%r16,%r8");3072 asm volatile("shrd %cl,%r13w,(%r19,%rax,4),%r31w");3073 asm volatile("shrd %cl,%r9w,(%rax),%r31w");3074 asm volatile("shrl $0x2,(%rax),%r31d");3075 asm volatile("shrw $0x1,(%rax),%r31w");3076 asm volatile("shrw %cl,(%r19,%rax,4),%r31w");3077 asm volatile("sub $0x1234,%ax,%r30w");3078 asm volatile("sub %r15b,%r17b,%r18b");3079 asm volatile("sub %r15d,(%r8),%r18d");3080 asm volatile("sub (%r15,%rax,1),%r16b,%r8b");3081 asm volatile("sub (%r15,%rax,1),%r16w,%r8w");3082 asm volatile("subl $0x11,(%r19,%rax,4),%r20d");3083 asm volatile("xor $0x1234,%ax,%r30w");3084 asm volatile("xor %r15b,%r17b,%r18b");3085 asm volatile("xor %r15d,(%r8),%r18d");3086 asm volatile("xor (%r15,%rax,1),%r16b,%r8b");3087 asm volatile("xor (%r15,%rax,1),%r16w,%r8w");3088 asm volatile("xorl $0x11,(%r19,%rax,4),%r20d");3089 3090 /* APX suppress status flags */3091 3092 asm volatile("{nf} add %bl,%dl,%r8b");3093 asm volatile("{nf} add %dx,%ax,%r9w");3094 asm volatile("{nf} add 0x123(%r8,%rax,4),%bl,%dl");3095 asm volatile("{nf} add 0x123(%r8,%rax,4),%dx,%ax");3096 asm volatile("{nf} or %bl,%dl,%r8b");3097 asm volatile("{nf} or %dx,%ax,%r9w");3098 asm volatile("{nf} or 0x123(%r8,%rax,4),%bl,%dl");3099 asm volatile("{nf} or 0x123(%r8,%rax,4),%dx,%ax");3100 asm volatile("{nf} and %bl,%dl,%r8b");3101 asm volatile("{nf} and %dx,%ax,%r9w");3102 asm volatile("{nf} and 0x123(%r8,%rax,4),%bl,%dl");3103 asm volatile("{nf} and 0x123(%r8,%rax,4),%dx,%ax");3104 asm volatile("{nf} shld $0x7b,%dx,%ax,%r9w");3105 asm volatile("{nf} sub %bl,%dl,%r8b");3106 asm volatile("{nf} sub %dx,%ax,%r9w");3107 asm volatile("{nf} sub 0x123(%r8,%rax,4),%bl,%dl");3108 asm volatile("{nf} sub 0x123(%r8,%rax,4),%dx,%ax");3109 asm volatile("{nf} shrd $0x7b,%dx,%ax,%r9w");3110 asm volatile("{nf} xor %bl,%dl,%r8b");3111 asm volatile("{nf} xor %r31,%r31");3112 asm volatile("{nf} xor 0x123(%r8,%rax,4),%bl,%dl");3113 asm volatile("{nf} xor 0x123(%r8,%rax,4),%dx,%ax");3114 asm volatile("{nf} imul $0xff90,%r9,%r15");3115 asm volatile("{nf} imul $0x7b,%r9,%r15");3116 asm volatile("{nf} xor $0x7b,%bl,%dl");3117 asm volatile("{nf} xor $0x7b,%dx,%ax");3118 asm volatile("{nf} popcnt %r9,%r31");3119 asm volatile("{nf} shld %cl,%dx,%ax,%r9w");3120 asm volatile("{nf} shrd %cl,%dx,%ax,%r9w");3121 asm volatile("{nf} imul %r9,%r31,%r11");3122 asm volatile("{nf} sar $0x7b,%bl,%dl");3123 asm volatile("{nf} sar $0x7b,%dx,%ax");3124 asm volatile("{nf} sar $1,%bl,%dl");3125 asm volatile("{nf} sar $1,%dx,%ax");3126 asm volatile("{nf} sar %cl,%bl,%dl");3127 asm volatile("{nf} sar %cl,%dx,%ax");3128 asm volatile("{nf} andn %r9,%r31,%r11");3129 asm volatile("{nf} blsi %r9,%r31");3130 asm volatile("{nf} tzcnt %r9,%r31");3131 asm volatile("{nf} lzcnt %r9,%r31");3132 asm volatile("{nf} idiv %bl");3133 asm volatile("{nf} idiv %dx");3134 asm volatile("{nf} dec %bl,%dl");3135 asm volatile("{nf} dec %dx,%ax");3136 3137#else /* #ifdef __x86_64__ */3138 3139 /* bound r32, mem (same op code as EVEX prefix) */3140 3141 asm volatile("bound %eax, 0x12345678(%ecx)");3142 asm volatile("bound %ecx, 0x12345678(%eax)");3143 asm volatile("bound %edx, 0x12345678(%eax)");3144 asm volatile("bound %ebx, 0x12345678(%eax)");3145 asm volatile("bound %esp, 0x12345678(%eax)");3146 asm volatile("bound %ebp, 0x12345678(%eax)");3147 asm volatile("bound %esi, 0x12345678(%eax)");3148 asm volatile("bound %edi, 0x12345678(%eax)");3149 asm volatile("bound %ecx, (%eax)");3150 asm volatile("bound %eax, (0x12345678)");3151 asm volatile("bound %edx, (%ecx,%eax,1)");3152 asm volatile("bound %edx, 0x12345678(,%eax,1)");3153 asm volatile("bound %edx, (%eax,%ecx,1)");3154 asm volatile("bound %edx, (%eax,%ecx,8)");3155 asm volatile("bound %edx, 0x12(%eax)");3156 asm volatile("bound %edx, 0x12(%ebp)");3157 asm volatile("bound %edx, 0x12(%ecx,%eax,1)");3158 asm volatile("bound %edx, 0x12(%ebp,%eax,1)");3159 asm volatile("bound %edx, 0x12(%eax,%ecx,1)");3160 asm volatile("bound %edx, 0x12(%eax,%ecx,8)");3161 asm volatile("bound %edx, 0x12345678(%eax)");3162 asm volatile("bound %edx, 0x12345678(%ebp)");3163 asm volatile("bound %edx, 0x12345678(%ecx,%eax,1)");3164 asm volatile("bound %edx, 0x12345678(%ebp,%eax,1)");3165 asm volatile("bound %edx, 0x12345678(%eax,%ecx,1)");3166 asm volatile("bound %edx, 0x12345678(%eax,%ecx,8)");3167 3168 /* bound r16, mem (same op code as EVEX prefix) */3169 3170 asm volatile("bound %ax, 0x12345678(%ecx)");3171 asm volatile("bound %cx, 0x12345678(%eax)");3172 asm volatile("bound %dx, 0x12345678(%eax)");3173 asm volatile("bound %bx, 0x12345678(%eax)");3174 asm volatile("bound %sp, 0x12345678(%eax)");3175 asm volatile("bound %bp, 0x12345678(%eax)");3176 asm volatile("bound %si, 0x12345678(%eax)");3177 asm volatile("bound %di, 0x12345678(%eax)");3178 asm volatile("bound %cx, (%eax)");3179 asm volatile("bound %ax, (0x12345678)");3180 asm volatile("bound %dx, (%ecx,%eax,1)");3181 asm volatile("bound %dx, 0x12345678(,%eax,1)");3182 asm volatile("bound %dx, (%eax,%ecx,1)");3183 asm volatile("bound %dx, (%eax,%ecx,8)");3184 asm volatile("bound %dx, 0x12(%eax)");3185 asm volatile("bound %dx, 0x12(%ebp)");3186 asm volatile("bound %dx, 0x12(%ecx,%eax,1)");3187 asm volatile("bound %dx, 0x12(%ebp,%eax,1)");3188 asm volatile("bound %dx, 0x12(%eax,%ecx,1)");3189 asm volatile("bound %dx, 0x12(%eax,%ecx,8)");3190 asm volatile("bound %dx, 0x12345678(%eax)");3191 asm volatile("bound %dx, 0x12345678(%ebp)");3192 asm volatile("bound %dx, 0x12345678(%ecx,%eax,1)");3193 asm volatile("bound %dx, 0x12345678(%ebp,%eax,1)");3194 asm volatile("bound %dx, 0x12345678(%eax,%ecx,1)");3195 asm volatile("bound %dx, 0x12345678(%eax,%ecx,8)");3196 3197 /* AVX-512: Instructions with the same op codes as Mask Instructions */3198 3199 asm volatile("cmovno %eax,%ebx");3200 asm volatile("cmovno 0x12345678(%eax),%ecx");3201 asm volatile("cmovno 0x12345678(%eax),%cx");3202 3203 asm volatile("cmove %eax,%ebx");3204 asm volatile("cmove 0x12345678(%eax),%ecx");3205 asm volatile("cmove 0x12345678(%eax),%cx");3206 3207 asm volatile("seto 0x12345678(%eax)");3208 asm volatile("setno 0x12345678(%eax)");3209 asm volatile("setb 0x12345678(%eax)");3210 asm volatile("setc 0x12345678(%eax)");3211 asm volatile("setnae 0x12345678(%eax)");3212 asm volatile("setae 0x12345678(%eax)");3213 asm volatile("setnb 0x12345678(%eax)");3214 asm volatile("setnc 0x12345678(%eax)");3215 asm volatile("sets 0x12345678(%eax)");3216 asm volatile("setns 0x12345678(%eax)");3217 3218 /* AVX-512: Mask Instructions */3219 3220 asm volatile("kandw %k7,%k6,%k5");3221 asm volatile("kandq %k7,%k6,%k5");3222 asm volatile("kandb %k7,%k6,%k5");3223 asm volatile("kandd %k7,%k6,%k5");3224 3225 asm volatile("kandnw %k7,%k6,%k5");3226 asm volatile("kandnq %k7,%k6,%k5");3227 asm volatile("kandnb %k7,%k6,%k5");3228 asm volatile("kandnd %k7,%k6,%k5");3229 3230 asm volatile("knotw %k7,%k6");3231 asm volatile("knotq %k7,%k6");3232 asm volatile("knotb %k7,%k6");3233 asm volatile("knotd %k7,%k6");3234 3235 asm volatile("korw %k7,%k6,%k5");3236 asm volatile("korq %k7,%k6,%k5");3237 asm volatile("korb %k7,%k6,%k5");3238 asm volatile("kord %k7,%k6,%k5");3239 3240 asm volatile("kxnorw %k7,%k6,%k5");3241 asm volatile("kxnorq %k7,%k6,%k5");3242 asm volatile("kxnorb %k7,%k6,%k5");3243 asm volatile("kxnord %k7,%k6,%k5");3244 3245 asm volatile("kxorw %k7,%k6,%k5");3246 asm volatile("kxorq %k7,%k6,%k5");3247 asm volatile("kxorb %k7,%k6,%k5");3248 asm volatile("kxord %k7,%k6,%k5");3249 3250 asm volatile("kaddw %k7,%k6,%k5");3251 asm volatile("kaddq %k7,%k6,%k5");3252 asm volatile("kaddb %k7,%k6,%k5");3253 asm volatile("kaddd %k7,%k6,%k5");3254 3255 asm volatile("kunpckbw %k7,%k6,%k5");3256 asm volatile("kunpckwd %k7,%k6,%k5");3257 asm volatile("kunpckdq %k7,%k6,%k5");3258 3259 asm volatile("kmovw %k6,%k5");3260 asm volatile("kmovw (%ecx),%k5");3261 asm volatile("kmovw 0x123(%eax,%ecx,8),%k5");3262 asm volatile("kmovw %k5,(%ecx)");3263 asm volatile("kmovw %k5,0x123(%eax,%ecx,8)");3264 asm volatile("kmovw %eax,%k5");3265 asm volatile("kmovw %ebp,%k5");3266 asm volatile("kmovw %k5,%eax");3267 asm volatile("kmovw %k5,%ebp");3268 3269 asm volatile("kmovq %k6,%k5");3270 asm volatile("kmovq (%ecx),%k5");3271 asm volatile("kmovq 0x123(%eax,%ecx,8),%k5");3272 asm volatile("kmovq %k5,(%ecx)");3273 asm volatile("kmovq %k5,0x123(%eax,%ecx,8)");3274 3275 asm volatile("kmovb %k6,%k5");3276 asm volatile("kmovb (%ecx),%k5");3277 asm volatile("kmovb 0x123(%eax,%ecx,8),%k5");3278 asm volatile("kmovb %k5,(%ecx)");3279 asm volatile("kmovb %k5,0x123(%eax,%ecx,8)");3280 asm volatile("kmovb %eax,%k5");3281 asm volatile("kmovb %ebp,%k5");3282 asm volatile("kmovb %k5,%eax");3283 asm volatile("kmovb %k5,%ebp");3284 3285 asm volatile("kmovd %k6,%k5");3286 asm volatile("kmovd (%ecx),%k5");3287 asm volatile("kmovd 0x123(%eax,%ecx,8),%k5");3288 asm volatile("kmovd %k5,(%ecx)");3289 asm volatile("kmovd %k5,0x123(%eax,%ecx,8)");3290 asm volatile("kmovd %eax,%k5");3291 asm volatile("kmovd %ebp,%k5");3292 asm volatile("kmovd %k5,%eax");3293 asm volatile("kmovd %k5,%ebp");3294 3295 asm volatile("kortestw %k6,%k5");3296 asm volatile("kortestq %k6,%k5");3297 asm volatile("kortestb %k6,%k5");3298 asm volatile("kortestd %k6,%k5");3299 3300 asm volatile("ktestw %k6,%k5");3301 asm volatile("ktestq %k6,%k5");3302 asm volatile("ktestb %k6,%k5");3303 asm volatile("ktestd %k6,%k5");3304 3305 asm volatile("kshiftrw $0x12,%k6,%k5");3306 asm volatile("kshiftrq $0x5b,%k6,%k5");3307 asm volatile("kshiftlw $0x12,%k6,%k5");3308 asm volatile("kshiftlq $0x5b,%k6,%k5");3309 3310 /* AVX-512: Op code 0f 5b */3311 asm volatile("vcvtdq2ps %xmm5,%xmm6");3312 asm volatile("vcvtqq2ps %zmm5,%ymm6{%k7}");3313 asm volatile("vcvtps2dq %xmm5,%xmm6");3314 asm volatile("vcvttps2dq %xmm5,%xmm6");3315 3316 /* AVX-512: Op code 0f 6f */3317 3318 asm volatile("movq %mm0,%mm4");3319 asm volatile("vmovdqa %ymm4,%ymm6");3320 asm volatile("vmovdqa32 %zmm5,%zmm6");3321 asm volatile("vmovdqa64 %zmm5,%zmm6");3322 asm volatile("vmovdqu %ymm4,%ymm6");3323 asm volatile("vmovdqu32 %zmm5,%zmm6");3324 asm volatile("vmovdqu64 %zmm5,%zmm6");3325 asm volatile("vmovdqu8 %zmm5,%zmm6");3326 asm volatile("vmovdqu16 %zmm5,%zmm6");3327 3328 /* AVX-512: Op code 0f 78 */3329 3330 asm volatile("vmread %eax,%ebx");3331 asm volatile("vcvttps2udq %zmm5,%zmm6");3332 asm volatile("vcvttpd2udq %zmm5,%ymm6{%k7}");3333 asm volatile("vcvttsd2usi %xmm6,%eax");3334 asm volatile("vcvttss2usi %xmm6,%eax");3335 asm volatile("vcvttps2uqq %ymm5,%zmm6{%k7}");3336 asm volatile("vcvttpd2uqq %zmm5,%zmm6");3337 3338 /* AVX-512: Op code 0f 79 */3339 3340 asm volatile("vmwrite %eax,%ebx");3341 asm volatile("vcvtps2udq %zmm5,%zmm6");3342 asm volatile("vcvtpd2udq %zmm5,%ymm6{%k7}");3343 asm volatile("vcvtsd2usi %xmm6,%eax");3344 asm volatile("vcvtss2usi %xmm6,%eax");3345 asm volatile("vcvtps2uqq %ymm5,%zmm6{%k7}");3346 asm volatile("vcvtpd2uqq %zmm5,%zmm6");3347 3348 /* AVX-512: Op code 0f 7a */3349 3350 asm volatile("vcvtudq2pd %ymm5,%zmm6{%k7}");3351 asm volatile("vcvtuqq2pd %zmm5,%zmm6");3352 asm volatile("vcvtudq2ps %zmm5,%zmm6");3353 asm volatile("vcvtuqq2ps %zmm5,%ymm6{%k7}");3354 asm volatile("vcvttps2qq %ymm5,%zmm6{%k7}");3355 asm volatile("vcvttpd2qq %zmm5,%zmm6");3356 3357 /* AVX-512: Op code 0f 7b */3358 3359 asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");3360 asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");3361 asm volatile("vcvtps2qq %ymm5,%zmm6{%k7}");3362 asm volatile("vcvtpd2qq %zmm5,%zmm6");3363 3364 /* AVX-512: Op code 0f 7f */3365 3366 asm volatile("movq.s %mm0,%mm4");3367 asm volatile("vmovdqa.s %ymm5,%ymm6");3368 asm volatile("vmovdqa32.s %zmm5,%zmm6");3369 asm volatile("vmovdqa64.s %zmm5,%zmm6");3370 asm volatile("vmovdqu.s %ymm5,%ymm6");3371 asm volatile("vmovdqu32.s %zmm5,%zmm6");3372 asm volatile("vmovdqu64.s %zmm5,%zmm6");3373 asm volatile("vmovdqu8.s %zmm5,%zmm6");3374 asm volatile("vmovdqu16.s %zmm5,%zmm6");3375 3376 /* AVX-512: Op code 0f db */3377 3378 asm volatile("pand %mm1,%mm2");3379 asm volatile("pand %xmm1,%xmm2");3380 asm volatile("vpand %ymm4,%ymm6,%ymm2");3381 asm volatile("vpandd %zmm4,%zmm5,%zmm6");3382 asm volatile("vpandq %zmm4,%zmm5,%zmm6");3383 3384 /* AVX-512: Op code 0f df */3385 3386 asm volatile("pandn %mm1,%mm2");3387 asm volatile("pandn %xmm1,%xmm2");3388 asm volatile("vpandn %ymm4,%ymm6,%ymm2");3389 asm volatile("vpandnd %zmm4,%zmm5,%zmm6");3390 asm volatile("vpandnq %zmm4,%zmm5,%zmm6");3391 3392 /* AVX-512: Op code 0f e6 */3393 3394 asm volatile("vcvttpd2dq %xmm1,%xmm2");3395 asm volatile("vcvtdq2pd %xmm5,%xmm6");3396 asm volatile("vcvtdq2pd %ymm5,%zmm6{%k7}");3397 asm volatile("vcvtqq2pd %zmm5,%zmm6");3398 asm volatile("vcvtpd2dq %xmm1,%xmm2");3399 3400 /* AVX-512: Op code 0f eb */3401 3402 asm volatile("por %mm4,%mm6");3403 asm volatile("vpor %ymm4,%ymm6,%ymm2");3404 asm volatile("vpord %zmm4,%zmm5,%zmm6");3405 asm volatile("vporq %zmm4,%zmm5,%zmm6");3406 3407 /* AVX-512: Op code 0f ef */3408 3409 asm volatile("pxor %mm4,%mm6");3410 asm volatile("vpxor %ymm4,%ymm6,%ymm2");3411 asm volatile("vpxord %zmm4,%zmm5,%zmm6");3412 asm volatile("vpxorq %zmm4,%zmm5,%zmm6");3413 3414 /* AVX-512: Op code 0f 38 10 */3415 3416 asm volatile("pblendvb %xmm1,%xmm0");3417 asm volatile("vpsrlvw %zmm4,%zmm5,%zmm6");3418 asm volatile("vpmovuswb %zmm5,%ymm6{%k7}");3419 3420 /* AVX-512: Op code 0f 38 11 */3421 3422 asm volatile("vpmovusdb %zmm5,%xmm6{%k7}");3423 asm volatile("vpsravw %zmm4,%zmm5,%zmm6");3424 3425 /* AVX-512: Op code 0f 38 12 */3426 3427 asm volatile("vpmovusqb %zmm5,%xmm6{%k7}");3428 asm volatile("vpsllvw %zmm4,%zmm5,%zmm6");3429 3430 /* AVX-512: Op code 0f 38 13 */3431 3432 asm volatile("vcvtph2ps %xmm3,%ymm5");3433 asm volatile("vcvtph2ps %ymm5,%zmm6{%k7}");3434 asm volatile("vpmovusdw %zmm5,%ymm6{%k7}");3435 3436 /* AVX-512: Op code 0f 38 14 */3437 3438 asm volatile("blendvps %xmm1,%xmm0");3439 asm volatile("vpmovusqw %zmm5,%xmm6{%k7}");3440 asm volatile("vprorvd %zmm4,%zmm5,%zmm6");3441 asm volatile("vprorvq %zmm4,%zmm5,%zmm6");3442 3443 /* AVX-512: Op code 0f 38 15 */3444 3445 asm volatile("blendvpd %xmm1,%xmm0");3446 asm volatile("vpmovusqd %zmm5,%ymm6{%k7}");3447 asm volatile("vprolvd %zmm4,%zmm5,%zmm6");3448 asm volatile("vprolvq %zmm4,%zmm5,%zmm6");3449 3450 /* AVX-512: Op code 0f 38 16 */3451 3452 asm volatile("vpermps %ymm4,%ymm6,%ymm2");3453 asm volatile("vpermps %ymm4,%ymm6,%ymm2{%k7}");3454 asm volatile("vpermpd %ymm4,%ymm6,%ymm2{%k7}");3455 3456 /* AVX-512: Op code 0f 38 19 */3457 3458 asm volatile("vbroadcastsd %xmm4,%ymm6");3459 asm volatile("vbroadcastf32x2 %xmm7,%zmm6");3460 3461 /* AVX-512: Op code 0f 38 1a */3462 3463 asm volatile("vbroadcastf128 (%ecx),%ymm4");3464 asm volatile("vbroadcastf32x4 (%ecx),%zmm6");3465 asm volatile("vbroadcastf64x2 (%ecx),%zmm6");3466 3467 /* AVX-512: Op code 0f 38 1b */3468 3469 asm volatile("vbroadcastf32x8 (%ecx),%zmm6");3470 asm volatile("vbroadcastf64x4 (%ecx),%zmm6");3471 3472 /* AVX-512: Op code 0f 38 1f */3473 3474 asm volatile("vpabsq %zmm4,%zmm6");3475 3476 /* AVX-512: Op code 0f 38 20 */3477 3478 asm volatile("vpmovsxbw %xmm4,%xmm5");3479 asm volatile("vpmovswb %zmm5,%ymm6{%k7}");3480 3481 /* AVX-512: Op code 0f 38 21 */3482 3483 asm volatile("vpmovsxbd %xmm4,%ymm6");3484 asm volatile("vpmovsdb %zmm5,%xmm6{%k7}");3485 3486 /* AVX-512: Op code 0f 38 22 */3487 3488 asm volatile("vpmovsxbq %xmm4,%ymm4");3489 asm volatile("vpmovsqb %zmm5,%xmm6{%k7}");3490 3491 /* AVX-512: Op code 0f 38 23 */3492 3493 asm volatile("vpmovsxwd %xmm4,%ymm4");3494 asm volatile("vpmovsdw %zmm5,%ymm6{%k7}");3495 3496 /* AVX-512: Op code 0f 38 24 */3497 3498 asm volatile("vpmovsxwq %xmm4,%ymm6");3499 asm volatile("vpmovsqw %zmm5,%xmm6{%k7}");3500 3501 /* AVX-512: Op code 0f 38 25 */3502 3503 asm volatile("vpmovsxdq %xmm4,%ymm4");3504 asm volatile("vpmovsqd %zmm5,%ymm6{%k7}");3505 3506 /* AVX-512: Op code 0f 38 26 */3507 3508 asm volatile("vptestmb %zmm5,%zmm6,%k5");3509 asm volatile("vptestmw %zmm5,%zmm6,%k5");3510 asm volatile("vptestnmb %zmm4,%zmm5,%k5");3511 asm volatile("vptestnmw %zmm4,%zmm5,%k5");3512 3513 /* AVX-512: Op code 0f 38 27 */3514 3515 asm volatile("vptestmd %zmm5,%zmm6,%k5");3516 asm volatile("vptestmq %zmm5,%zmm6,%k5");3517 asm volatile("vptestnmd %zmm4,%zmm5,%k5");3518 asm volatile("vptestnmq %zmm4,%zmm5,%k5");3519 3520 /* AVX-512: Op code 0f 38 28 */3521 3522 asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");3523 asm volatile("vpmovm2b %k5,%zmm6");3524 asm volatile("vpmovm2w %k5,%zmm6");3525 3526 /* AVX-512: Op code 0f 38 29 */3527 3528 asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");3529 asm volatile("vpmovb2m %zmm6,%k5");3530 asm volatile("vpmovw2m %zmm6,%k5");3531 3532 /* AVX-512: Op code 0f 38 2a */3533 3534 asm volatile("vmovntdqa (%ecx),%ymm4");3535 asm volatile("vpbroadcastmb2q %k6,%zmm1");3536 3537 /* AVX-512: Op code 0f 38 2c */3538 3539 asm volatile("vmaskmovps (%ecx),%ymm4,%ymm6");3540 asm volatile("vscalefps %zmm4,%zmm5,%zmm6");3541 asm volatile("vscalefpd %zmm4,%zmm5,%zmm6");3542 3543 /* AVX-512: Op code 0f 38 2d */3544 3545 asm volatile("vmaskmovpd (%ecx),%ymm4,%ymm6");3546 asm volatile("vscalefss %xmm4,%xmm5,%xmm6{%k7}");3547 asm volatile("vscalefsd %xmm4,%xmm5,%xmm6{%k7}");3548 3549 /* AVX-512: Op code 0f 38 30 */3550 3551 asm volatile("vpmovzxbw %xmm4,%ymm4");3552 asm volatile("vpmovwb %zmm5,%ymm6{%k7}");3553 3554 /* AVX-512: Op code 0f 38 31 */3555 3556 asm volatile("vpmovzxbd %xmm4,%ymm6");3557 asm volatile("vpmovdb %zmm5,%xmm6{%k7}");3558 3559 /* AVX-512: Op code 0f 38 32 */3560 3561 asm volatile("vpmovzxbq %xmm4,%ymm4");3562 asm volatile("vpmovqb %zmm5,%xmm6{%k7}");3563 3564 /* AVX-512: Op code 0f 38 33 */3565 3566 asm volatile("vpmovzxwd %xmm4,%ymm4");3567 asm volatile("vpmovdw %zmm5,%ymm6{%k7}");3568 3569 /* AVX-512: Op code 0f 38 34 */3570 3571 asm volatile("vpmovzxwq %xmm4,%ymm6");3572 asm volatile("vpmovqw %zmm5,%xmm6{%k7}");3573 3574 /* AVX-512: Op code 0f 38 35 */3575 3576 asm volatile("vpmovzxdq %xmm4,%ymm4");3577 asm volatile("vpmovqd %zmm5,%ymm6{%k7}");3578 3579 /* AVX-512: Op code 0f 38 36 */3580 3581 asm volatile("vpermd %ymm4,%ymm6,%ymm2");3582 asm volatile("vpermd %ymm4,%ymm6,%ymm2{%k7}");3583 asm volatile("vpermq %ymm4,%ymm6,%ymm2{%k7}");3584 3585 /* AVX-512: Op code 0f 38 38 */3586 3587 asm volatile("vpminsb %ymm4,%ymm6,%ymm2");3588 asm volatile("vpmovm2d %k5,%zmm6");3589 asm volatile("vpmovm2q %k5,%zmm6");3590 3591 /* AVX-512: Op code 0f 38 39 */3592 3593 asm volatile("vpminsd %xmm1,%xmm2,%xmm3");3594 asm volatile("vpminsd %zmm4,%zmm5,%zmm6");3595 asm volatile("vpminsq %zmm4,%zmm5,%zmm6");3596 asm volatile("vpmovd2m %zmm6,%k5");3597 asm volatile("vpmovq2m %zmm6,%k5");3598 3599 /* AVX-512: Op code 0f 38 3a */3600 3601 asm volatile("vpminuw %ymm4,%ymm6,%ymm2");3602 asm volatile("vpbroadcastmw2d %k6,%zmm6");3603 3604 /* AVX-512: Op code 0f 38 3b */3605 3606 asm volatile("vpminud %ymm4,%ymm6,%ymm2");3607 asm volatile("vpminud %zmm4,%zmm5,%zmm6");3608 asm volatile("vpminuq %zmm4,%zmm5,%zmm6");3609 3610 /* AVX-512: Op code 0f 38 3d */3611 3612 asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");3613 asm volatile("vpmaxsd %zmm4,%zmm5,%zmm6");3614 asm volatile("vpmaxsq %zmm4,%zmm5,%zmm6");3615 3616 /* AVX-512: Op code 0f 38 3f */3617 3618 asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");3619 asm volatile("vpmaxud %zmm4,%zmm5,%zmm6");3620 asm volatile("vpmaxuq %zmm4,%zmm5,%zmm6");3621 3622 /* AVX-512: Op code 0f 38 40 */3623 3624 asm volatile("vpmulld %ymm4,%ymm6,%ymm2");3625 asm volatile("vpmulld %zmm4,%zmm5,%zmm6");3626 asm volatile("vpmullq %zmm4,%zmm5,%zmm6");3627 3628 /* AVX-512: Op code 0f 38 42 */3629 3630 asm volatile("vgetexpps %zmm5,%zmm6");3631 asm volatile("vgetexppd %zmm5,%zmm6");3632 3633 /* AVX-512: Op code 0f 38 43 */3634 3635 asm volatile("vgetexpss %xmm4,%xmm5,%xmm6{%k7}");3636 asm volatile("vgetexpsd %xmm2,%xmm3,%xmm4{%k7}");3637 3638 /* AVX-512: Op code 0f 38 44 */3639 3640 asm volatile("vplzcntd %zmm5,%zmm6");3641 asm volatile("vplzcntq %zmm5,%zmm6");3642 3643 /* AVX-512: Op code 0f 38 46 */3644 3645 asm volatile("vpsravd %ymm4,%ymm6,%ymm2");3646 asm volatile("vpsravd %zmm4,%zmm5,%zmm6");3647 asm volatile("vpsravq %zmm4,%zmm5,%zmm6");3648 3649 /* AVX-512: Op code 0f 38 4c */3650 3651 asm volatile("vrcp14ps %zmm5,%zmm6");3652 asm volatile("vrcp14pd %zmm5,%zmm6");3653 3654 /* AVX-512: Op code 0f 38 4d */3655 3656 asm volatile("vrcp14ss %xmm4,%xmm5,%xmm6{%k7}");3657 asm volatile("vrcp14sd %xmm4,%xmm5,%xmm6{%k7}");3658 3659 /* AVX-512: Op code 0f 38 4e */3660 3661 asm volatile("vrsqrt14ps %zmm5,%zmm6");3662 asm volatile("vrsqrt14pd %zmm5,%zmm6");3663 3664 /* AVX-512: Op code 0f 38 4f */3665 3666 asm volatile("vrsqrt14ss %xmm4,%xmm5,%xmm6{%k7}");3667 asm volatile("vrsqrt14sd %xmm4,%xmm5,%xmm6{%k7}");3668 3669 /* AVX-512: Op code 0f 38 50 */3670 3671 asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");3672 asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");3673 asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");3674 asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3675 3676 /* AVX-512: Op code 0f 38 51 */3677 3678 asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");3679 asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");3680 asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");3681 asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3682 3683 /* AVX-512: Op code 0f 38 52 */3684 3685 asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");3686 asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");3687 asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");3688 asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3689 3690 asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");3691 asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");3692 asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");3693 asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3694 3695 asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");3696 asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");3697 3698 /* AVX-512: Op code 0f 38 53 */3699 3700 asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");3701 asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");3702 asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");3703 asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3704 3705 asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");3706 asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");3707 3708 /* AVX-512: Op code 0f 38 54 */3709 3710 asm volatile("vpopcntb %xmm1, %xmm2");3711 asm volatile("vpopcntb %ymm1, %ymm2");3712 asm volatile("vpopcntb %zmm1, %zmm2");3713 asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");3714 3715 asm volatile("vpopcntw %xmm1, %xmm2");3716 asm volatile("vpopcntw %ymm1, %ymm2");3717 asm volatile("vpopcntw %zmm1, %zmm2");3718 asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");3719 3720 /* AVX-512: Op code 0f 38 55 */3721 3722 asm volatile("vpopcntd %xmm1, %xmm2");3723 asm volatile("vpopcntd %ymm1, %ymm2");3724 asm volatile("vpopcntd %zmm1, %zmm2");3725 asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");3726 3727 asm volatile("vpopcntq %xmm1, %xmm2");3728 asm volatile("vpopcntq %ymm1, %ymm2");3729 asm volatile("vpopcntq %zmm1, %zmm2");3730 asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");3731 3732 /* AVX-512: Op code 0f 38 59 */3733 3734 asm volatile("vpbroadcastq %xmm4,%xmm6");3735 asm volatile("vbroadcasti32x2 %xmm7,%zmm6");3736 3737 /* AVX-512: Op code 0f 38 5a */3738 3739 asm volatile("vbroadcasti128 (%ecx),%ymm4");3740 asm volatile("vbroadcasti32x4 (%ecx),%zmm6");3741 asm volatile("vbroadcasti64x2 (%ecx),%zmm6");3742 3743 /* AVX-512: Op code 0f 38 5b */3744 3745 asm volatile("vbroadcasti32x8 (%ecx),%zmm6");3746 asm volatile("vbroadcasti64x4 (%ecx),%zmm6");3747 3748 /* AVX-512: Op code 0f 38 62 */3749 3750 asm volatile("vpexpandb %xmm1, %xmm2");3751 asm volatile("vpexpandb %ymm1, %ymm2");3752 asm volatile("vpexpandb %zmm1, %zmm2");3753 asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");3754 3755 asm volatile("vpexpandw %xmm1, %xmm2");3756 asm volatile("vpexpandw %ymm1, %ymm2");3757 asm volatile("vpexpandw %zmm1, %zmm2");3758 asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");3759 3760 /* AVX-512: Op code 0f 38 63 */3761 3762 asm volatile("vpcompressb %xmm1, %xmm2");3763 asm volatile("vpcompressb %ymm1, %ymm2");3764 asm volatile("vpcompressb %zmm1, %zmm2");3765 asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");3766 3767 asm volatile("vpcompressw %xmm1, %xmm2");3768 asm volatile("vpcompressw %ymm1, %ymm2");3769 asm volatile("vpcompressw %zmm1, %zmm2");3770 asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");3771 3772 /* AVX-512: Op code 0f 38 64 */3773 3774 asm volatile("vpblendmd %zmm4,%zmm5,%zmm6");3775 asm volatile("vpblendmq %zmm4,%zmm5,%zmm6");3776 3777 /* AVX-512: Op code 0f 38 65 */3778 3779 asm volatile("vblendmps %zmm4,%zmm5,%zmm6");3780 asm volatile("vblendmpd %zmm4,%zmm5,%zmm6");3781 3782 /* AVX-512: Op code 0f 38 66 */3783 3784 asm volatile("vpblendmb %zmm4,%zmm5,%zmm6");3785 asm volatile("vpblendmw %zmm4,%zmm5,%zmm6");3786 3787 /* AVX-512: Op code 0f 38 68 */3788 3789 asm volatile("vp2intersectd %xmm1, %xmm2, %k3");3790 asm volatile("vp2intersectd %ymm1, %ymm2, %k3");3791 asm volatile("vp2intersectd %zmm1, %zmm2, %k3");3792 asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");3793 3794 asm volatile("vp2intersectq %xmm1, %xmm2, %k3");3795 asm volatile("vp2intersectq %ymm1, %ymm2, %k3");3796 asm volatile("vp2intersectq %zmm1, %zmm2, %k3");3797 asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");3798 3799 /* AVX-512: Op code 0f 38 70 */3800 3801 asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");3802 asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");3803 asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");3804 asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3805 3806 /* AVX-512: Op code 0f 38 71 */3807 3808 asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");3809 asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");3810 asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");3811 asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3812 3813 asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");3814 asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");3815 asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");3816 asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3817 3818 /* AVX-512: Op code 0f 38 72 */3819 3820 asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");3821 asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");3822 asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");3823 asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3824 3825 asm volatile("vcvtneps2bf16 %xmm1, %xmm2");3826 asm volatile("vcvtneps2bf16 %ymm1, %xmm2");3827 asm volatile("vcvtneps2bf16 %zmm1, %ymm2");3828 asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");3829 3830 asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");3831 asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");3832 asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");3833 asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3834 3835 /* AVX-512: Op code 0f 38 73 */3836 3837 asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");3838 asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");3839 asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");3840 asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3841 3842 asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");3843 asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");3844 asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");3845 asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3846 3847 /* AVX-512: Op code 0f 38 75 */3848 3849 asm volatile("vpermi2b %zmm4,%zmm5,%zmm6");3850 asm volatile("vpermi2w %zmm4,%zmm5,%zmm6");3851 3852 /* AVX-512: Op code 0f 38 76 */3853 3854 asm volatile("vpermi2d %zmm4,%zmm5,%zmm6");3855 asm volatile("vpermi2q %zmm4,%zmm5,%zmm6");3856 3857 /* AVX-512: Op code 0f 38 77 */3858 3859 asm volatile("vpermi2ps %zmm4,%zmm5,%zmm6");3860 asm volatile("vpermi2pd %zmm4,%zmm5,%zmm6");3861 3862 /* AVX-512: Op code 0f 38 7a */3863 3864 asm volatile("vpbroadcastb %eax,%xmm3");3865 3866 /* AVX-512: Op code 0f 38 7b */3867 3868 asm volatile("vpbroadcastw %eax,%xmm3");3869 3870 /* AVX-512: Op code 0f 38 7c */3871 3872 asm volatile("vpbroadcastd %eax,%xmm3");3873 3874 /* AVX-512: Op code 0f 38 7d */3875 3876 asm volatile("vpermt2b %zmm4,%zmm5,%zmm6");3877 asm volatile("vpermt2w %zmm4,%zmm5,%zmm6");3878 3879 /* AVX-512: Op code 0f 38 7e */3880 3881 asm volatile("vpermt2d %zmm4,%zmm5,%zmm6");3882 asm volatile("vpermt2q %zmm4,%zmm5,%zmm6");3883 3884 /* AVX-512: Op code 0f 38 7f */3885 3886 asm volatile("vpermt2ps %zmm4,%zmm5,%zmm6");3887 asm volatile("vpermt2pd %zmm4,%zmm5,%zmm6");3888 3889 /* AVX-512: Op code 0f 38 83 */3890 3891 asm volatile("vpmultishiftqb %zmm4,%zmm5,%zmm6");3892 3893 /* AVX-512: Op code 0f 38 88 */3894 3895 asm volatile("vexpandps (%ecx),%zmm6");3896 asm volatile("vexpandpd (%ecx),%zmm6");3897 3898 /* AVX-512: Op code 0f 38 89 */3899 3900 asm volatile("vpexpandd (%ecx),%zmm6");3901 asm volatile("vpexpandq (%ecx),%zmm6");3902 3903 /* AVX-512: Op code 0f 38 8a */3904 3905 asm volatile("vcompressps %zmm6,(%ecx)");3906 asm volatile("vcompresspd %zmm6,(%ecx)");3907 3908 /* AVX-512: Op code 0f 38 8b */3909 3910 asm volatile("vpcompressd %zmm6,(%ecx)");3911 asm volatile("vpcompressq %zmm6,(%ecx)");3912 3913 /* AVX-512: Op code 0f 38 8d */3914 3915 asm volatile("vpermb %zmm4,%zmm5,%zmm6");3916 asm volatile("vpermw %zmm4,%zmm5,%zmm6");3917 3918 /* AVX-512: Op code 0f 38 8f */3919 3920 asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");3921 asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");3922 asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");3923 asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");3924 3925 /* AVX-512: Op code 0f 38 90 */3926 3927 asm volatile("vpgatherdd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");3928 asm volatile("vpgatherdq %xmm2,0x04(%ebp,%xmm7,2),%xmm1");3929 asm volatile("vpgatherdd 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");3930 asm volatile("vpgatherdq 0x7b(%ebp,%ymm7,8),%zmm6{%k1}");3931 3932 /* AVX-512: Op code 0f 38 91 */3933 3934 asm volatile("vpgatherqd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");3935 asm volatile("vpgatherqq %xmm2,0x02(%ebp,%xmm7,2),%xmm1");3936 asm volatile("vpgatherqd 0x7b(%ebp,%zmm7,8),%ymm6{%k1}");3937 asm volatile("vpgatherqq 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");3938 3939 /* AVX-512: Op code 0f 38 9a */3940 3941 asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");3942 asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");3943 asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");3944 asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3945 3946 asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");3947 asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");3948 asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");3949 asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3950 3951 asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");3952 asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");3953 3954 /* AVX-512: Op code 0f 38 9b */3955 3956 asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");3957 asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");3958 3959 asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");3960 asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");3961 3962 asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");3963 asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");3964 3965 /* AVX-512: Op code 0f 38 a0 */3966 3967 asm volatile("vpscatterdd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");3968 asm volatile("vpscatterdq %zmm6,0x7b(%ebp,%ymm7,8){%k1}");3969 3970 /* AVX-512: Op code 0f 38 a1 */3971 3972 asm volatile("vpscatterqd %ymm6,0x7b(%ebp,%zmm7,8){%k1}");3973 asm volatile("vpscatterqq %ymm6,0x7b(%ebp,%ymm7,8){%k1}");3974 3975 /* AVX-512: Op code 0f 38 a2 */3976 3977 asm volatile("vscatterdps %zmm6,0x7b(%ebp,%zmm7,8){%k1}");3978 asm volatile("vscatterdpd %zmm6,0x7b(%ebp,%ymm7,8){%k1}");3979 3980 /* AVX-512: Op code 0f 38 a3 */3981 3982 asm volatile("vscatterqps %ymm6,0x7b(%ebp,%zmm7,8){%k1}");3983 asm volatile("vscatterqpd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");3984 3985 /* AVX-512: Op code 0f 38 aa */3986 3987 asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");3988 asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");3989 asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");3990 asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3991 3992 asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");3993 asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");3994 asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");3995 asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");3996 3997 asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");3998 asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");3999 4000 /* AVX-512: Op code 0f 38 ab */4001 4002 asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");4003 asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");4004 4005 asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");4006 asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");4007 4008 asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");4009 asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");4010 4011 /* AVX-512: Op code 0f 38 b4 */4012 4013 asm volatile("vpmadd52luq %zmm4,%zmm5,%zmm6");4014 4015 /* AVX-512: Op code 0f 38 b5 */4016 4017 asm volatile("vpmadd52huq %zmm4,%zmm5,%zmm6");4018 4019 /* AVX-512: Op code 0f 38 c4 */4020 4021 asm volatile("vpconflictd %zmm5,%zmm6");4022 asm volatile("vpconflictq %zmm5,%zmm6");4023 4024 /* AVX-512: Op code 0f 38 c8 */4025 4026 asm volatile("vexp2ps %zmm6,%zmm7");4027 asm volatile("vexp2pd %zmm6,%zmm7");4028 4029 /* AVX-512: Op code 0f 38 ca */4030 4031 asm volatile("vrcp28ps %zmm6,%zmm7");4032 asm volatile("vrcp28pd %zmm6,%zmm7");4033 4034 /* AVX-512: Op code 0f 38 cb */4035 4036 asm volatile("vrcp28ss %xmm5,%xmm6,%xmm7{%k7}");4037 asm volatile("vrcp28sd %xmm5,%xmm6,%xmm7{%k7}");4038 4039 /* AVX-512: Op code 0f 38 cc */4040 4041 asm volatile("vrsqrt28ps %zmm6,%zmm7");4042 asm volatile("vrsqrt28pd %zmm6,%zmm7");4043 4044 /* AVX-512: Op code 0f 38 cd */4045 4046 asm volatile("vrsqrt28ss %xmm5,%xmm6,%xmm7{%k7}");4047 asm volatile("vrsqrt28sd %xmm5,%xmm6,%xmm7{%k7}");4048 4049 /* AVX-512: Op code 0f 38 cf */4050 4051 asm volatile("gf2p8mulb %xmm1, %xmm3");4052 asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");4053 4054 asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");4055 asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");4056 asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");4057 asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");4058 4059 /* AVX-512: Op code 0f 38 dc */4060 4061 asm volatile("vaesenc %xmm1, %xmm2, %xmm3");4062 asm volatile("vaesenc %ymm1, %ymm2, %ymm3");4063 asm volatile("vaesenc %zmm1, %zmm2, %zmm3");4064 asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");4065 4066 /* AVX-512: Op code 0f 38 dd */4067 4068 asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");4069 asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");4070 asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");4071 asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");4072 4073 /* AVX-512: Op code 0f 38 de */4074 4075 asm volatile("vaesdec %xmm1, %xmm2, %xmm3");4076 asm volatile("vaesdec %ymm1, %ymm2, %ymm3");4077 asm volatile("vaesdec %zmm1, %zmm2, %zmm3");4078 asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");4079 4080 /* AVX-512: Op code 0f 38 df */4081 4082 asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");4083 asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");4084 asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");4085 asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");4086 4087 /* AVX-512: Op code 0f 3a 03 */4088 4089 asm volatile("valignd $0x12,%zmm5,%zmm6,%zmm7");4090 asm volatile("valignq $0x12,%zmm5,%zmm6,%zmm7");4091 4092 /* AVX-512: Op code 0f 3a 08 */4093 4094 asm volatile("vroundps $0x5,%ymm6,%ymm2");4095 asm volatile("vrndscaleps $0x12,%zmm5,%zmm6");4096 4097 /* AVX-512: Op code 0f 3a 09 */4098 4099 asm volatile("vroundpd $0x5,%ymm6,%ymm2");4100 asm volatile("vrndscalepd $0x12,%zmm5,%zmm6");4101 4102 /* AVX-512: Op code 0f 3a 0a */4103 4104 asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");4105 asm volatile("vrndscaless $0x12,%xmm4,%xmm5,%xmm6{%k7}");4106 4107 /* AVX-512: Op code 0f 3a 0b */4108 4109 asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");4110 asm volatile("vrndscalesd $0x12,%xmm4,%xmm5,%xmm6{%k7}");4111 4112 /* AVX-512: Op code 0f 3a 18 */4113 4114 asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");4115 asm volatile("vinsertf32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");4116 asm volatile("vinsertf64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");4117 4118 /* AVX-512: Op code 0f 3a 19 */4119 4120 asm volatile("vextractf128 $0x5,%ymm4,%xmm4");4121 asm volatile("vextractf32x4 $0x12,%zmm5,%xmm6{%k7}");4122 asm volatile("vextractf64x2 $0x12,%zmm5,%xmm6{%k7}");4123 4124 /* AVX-512: Op code 0f 3a 1a */4125 4126 asm volatile("vinsertf32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");4127 asm volatile("vinsertf64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");4128 4129 /* AVX-512: Op code 0f 3a 1b */4130 4131 asm volatile("vextractf32x8 $0x12,%zmm6,%ymm7{%k7}");4132 asm volatile("vextractf64x4 $0x12,%zmm6,%ymm7{%k7}");4133 4134 /* AVX-512: Op code 0f 3a 1e */4135 4136 asm volatile("vpcmpud $0x12,%zmm6,%zmm7,%k5");4137 asm volatile("vpcmpuq $0x12,%zmm6,%zmm7,%k5");4138 4139 /* AVX-512: Op code 0f 3a 1f */4140 4141 asm volatile("vpcmpd $0x12,%zmm6,%zmm7,%k5");4142 asm volatile("vpcmpq $0x12,%zmm6,%zmm7,%k5");4143 4144 /* AVX-512: Op code 0f 3a 23 */4145 4146 asm volatile("vshuff32x4 $0x12,%zmm5,%zmm6,%zmm7");4147 asm volatile("vshuff64x2 $0x12,%zmm5,%zmm6,%zmm7");4148 4149 /* AVX-512: Op code 0f 3a 25 */4150 4151 asm volatile("vpternlogd $0x12,%zmm5,%zmm6,%zmm7");4152 asm volatile("vpternlogq $0x12,%zmm5,%zmm6,%zmm7");4153 4154 /* AVX-512: Op code 0f 3a 26 */4155 4156 asm volatile("vgetmantps $0x12,%zmm6,%zmm7");4157 asm volatile("vgetmantpd $0x12,%zmm6,%zmm7");4158 4159 /* AVX-512: Op code 0f 3a 27 */4160 4161 asm volatile("vgetmantss $0x12,%xmm5,%xmm6,%xmm7{%k7}");4162 asm volatile("vgetmantsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");4163 4164 /* AVX-512: Op code 0f 3a 38 */4165 4166 asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");4167 asm volatile("vinserti32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");4168 asm volatile("vinserti64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");4169 4170 /* AVX-512: Op code 0f 3a 39 */4171 4172 asm volatile("vextracti128 $0x5,%ymm4,%xmm6");4173 asm volatile("vextracti32x4 $0x12,%zmm5,%xmm6{%k7}");4174 asm volatile("vextracti64x2 $0x12,%zmm5,%xmm6{%k7}");4175 4176 /* AVX-512: Op code 0f 3a 3a */4177 4178 asm volatile("vinserti32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");4179 asm volatile("vinserti64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");4180 4181 /* AVX-512: Op code 0f 3a 3b */4182 4183 asm volatile("vextracti32x8 $0x12,%zmm6,%ymm7{%k7}");4184 asm volatile("vextracti64x4 $0x12,%zmm6,%ymm7{%k7}");4185 4186 /* AVX-512: Op code 0f 3a 3e */4187 4188 asm volatile("vpcmpub $0x12,%zmm6,%zmm7,%k5");4189 asm volatile("vpcmpuw $0x12,%zmm6,%zmm7,%k5");4190 4191 /* AVX-512: Op code 0f 3a 3f */4192 4193 asm volatile("vpcmpb $0x12,%zmm6,%zmm7,%k5");4194 asm volatile("vpcmpw $0x12,%zmm6,%zmm7,%k5");4195 4196 /* AVX-512: Op code 0f 3a 42 */4197 4198 asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");4199 asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");4200 4201 /* AVX-512: Op code 0f 3a 43 */4202 4203 asm volatile("vshufi32x4 $0x12,%zmm5,%zmm6,%zmm7");4204 asm volatile("vshufi64x2 $0x12,%zmm5,%zmm6,%zmm7");4205 4206 /* AVX-512: Op code 0f 3a 44 */4207 4208 asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");4209 asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");4210 asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");4211 4212 /* AVX-512: Op code 0f 3a 50 */4213 4214 asm volatile("vrangeps $0x12,%zmm5,%zmm6,%zmm7");4215 asm volatile("vrangepd $0x12,%zmm5,%zmm6,%zmm7");4216 4217 /* AVX-512: Op code 0f 3a 51 */4218 4219 asm volatile("vrangess $0x12,%xmm5,%xmm6,%xmm7");4220 asm volatile("vrangesd $0x12,%xmm5,%xmm6,%xmm7");4221 4222 /* AVX-512: Op code 0f 3a 54 */4223 4224 asm volatile("vfixupimmps $0x12,%zmm5,%zmm6,%zmm7");4225 asm volatile("vfixupimmpd $0x12,%zmm5,%zmm6,%zmm7");4226 4227 /* AVX-512: Op code 0f 3a 55 */4228 4229 asm volatile("vfixupimmss $0x12,%xmm5,%xmm6,%xmm7{%k7}");4230 asm volatile("vfixupimmsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");4231 4232 /* AVX-512: Op code 0f 3a 56 */4233 4234 asm volatile("vreduceps $0x12,%zmm6,%zmm7");4235 asm volatile("vreducepd $0x12,%zmm6,%zmm7");4236 4237 /* AVX-512: Op code 0f 3a 57 */4238 4239 asm volatile("vreducess $0x12,%xmm5,%xmm6,%xmm7");4240 asm volatile("vreducesd $0x12,%xmm5,%xmm6,%xmm7");4241 4242 /* AVX-512: Op code 0f 3a 66 */4243 4244 asm volatile("vfpclassps $0x12,%zmm7,%k5");4245 asm volatile("vfpclasspd $0x12,%zmm7,%k5");4246 4247 /* AVX-512: Op code 0f 3a 67 */4248 4249 asm volatile("vfpclassss $0x12,%xmm7,%k5");4250 asm volatile("vfpclasssd $0x12,%xmm7,%k5");4251 4252 /* AVX-512: Op code 0f 3a 70 */4253 4254 asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");4255 asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");4256 asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");4257 4258 /* AVX-512: Op code 0f 3a 71 */4259 4260 asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");4261 asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");4262 asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");4263 4264 asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");4265 asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");4266 asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");4267 4268 /* AVX-512: Op code 0f 3a 72 */4269 4270 asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");4271 asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");4272 asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");4273 4274 /* AVX-512: Op code 0f 3a 73 */4275 4276 asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");4277 asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");4278 asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");4279 4280 asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");4281 asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");4282 asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");4283 4284 /* AVX-512: Op code 0f 3a ce */4285 4286 asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");4287 4288 asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");4289 asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");4290 asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");4291 4292 /* AVX-512: Op code 0f 3a cf */4293 4294 asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");4295 4296 asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");4297 asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");4298 asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");4299 4300 /* AVX-512: Op code 0f 72 (Grp13) */4301 4302 asm volatile("vprord $0x12,%zmm5,%zmm6");4303 asm volatile("vprorq $0x12,%zmm5,%zmm6");4304 asm volatile("vprold $0x12,%zmm5,%zmm6");4305 asm volatile("vprolq $0x12,%zmm5,%zmm6");4306 asm volatile("psrad $0x2,%mm6");4307 asm volatile("vpsrad $0x5,%ymm6,%ymm2");4308 asm volatile("vpsrad $0x5,%zmm6,%zmm2");4309 asm volatile("vpsraq $0x5,%zmm6,%zmm2");4310 4311 /* AVX-512: Op code 0f 38 c6 (Grp18) */4312 4313 asm volatile("vgatherpf0dps 0x7b(%ebp,%zmm7,8){%k1}");4314 asm volatile("vgatherpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");4315 asm volatile("vgatherpf1dps 0x7b(%ebp,%zmm7,8){%k1}");4316 asm volatile("vgatherpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");4317 asm volatile("vscatterpf0dps 0x7b(%ebp,%zmm7,8){%k1}");4318 asm volatile("vscatterpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");4319 asm volatile("vscatterpf1dps 0x7b(%ebp,%zmm7,8){%k1}");4320 asm volatile("vscatterpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");4321 4322 /* AVX-512: Op code 0f 38 c7 (Grp19) */4323 4324 asm volatile("vgatherpf0qps 0x7b(%ebp,%zmm7,8){%k1}");4325 asm volatile("vgatherpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");4326 asm volatile("vgatherpf1qps 0x7b(%ebp,%zmm7,8){%k1}");4327 asm volatile("vgatherpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");4328 asm volatile("vscatterpf0qps 0x7b(%ebp,%zmm7,8){%k1}");4329 asm volatile("vscatterpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");4330 asm volatile("vscatterpf1qps 0x7b(%ebp,%zmm7,8){%k1}");4331 asm volatile("vscatterpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");4332 4333 /* AVX-512: Examples */4334 4335 asm volatile("vaddpd %zmm4,%zmm5,%zmm6");4336 asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}");4337 asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}{z}");4338 asm volatile("vaddpd {rn-sae},%zmm4,%zmm5,%zmm6");4339 asm volatile("vaddpd {ru-sae},%zmm4,%zmm5,%zmm6");4340 asm volatile("vaddpd {rd-sae},%zmm4,%zmm5,%zmm6");4341 asm volatile("vaddpd {rz-sae},%zmm4,%zmm5,%zmm6");4342 asm volatile("vaddpd (%ecx),%zmm5,%zmm6");4343 asm volatile("vaddpd 0x123(%eax,%ecx,8),%zmm5,%zmm6");4344 asm volatile("vaddpd (%ecx){1to8},%zmm5,%zmm6");4345 asm volatile("vaddpd 0x1fc0(%edx),%zmm5,%zmm6");4346 asm volatile("vaddpd 0x3f8(%edx){1to8},%zmm5,%zmm6");4347 asm volatile("vcmpeq_uqps 0x1fc(%edx){1to16},%zmm6,%k5");4348 asm volatile("vcmpltsd 0x123(%eax,%ecx,8),%xmm3,%k5{%k7}");4349 asm volatile("vcmplesd {sae},%xmm4,%xmm5,%k5{%k7}");4350 asm volatile("vgetmantss $0x5b,0x123(%eax,%ecx,8),%xmm4,%xmm5{%k7}");4351 4352 /* bndmk m32, bnd */4353 4354 asm volatile("bndmk (%eax), %bnd0");4355 asm volatile("bndmk (0x12345678), %bnd0");4356 asm volatile("bndmk (%eax), %bnd3");4357 asm volatile("bndmk (%ecx,%eax,1), %bnd0");4358 asm volatile("bndmk 0x12345678(,%eax,1), %bnd0");4359 asm volatile("bndmk (%eax,%ecx,1), %bnd0");4360 asm volatile("bndmk (%eax,%ecx,8), %bnd0");4361 asm volatile("bndmk 0x12(%eax), %bnd0");4362 asm volatile("bndmk 0x12(%ebp), %bnd0");4363 asm volatile("bndmk 0x12(%ecx,%eax,1), %bnd0");4364 asm volatile("bndmk 0x12(%ebp,%eax,1), %bnd0");4365 asm volatile("bndmk 0x12(%eax,%ecx,1), %bnd0");4366 asm volatile("bndmk 0x12(%eax,%ecx,8), %bnd0");4367 asm volatile("bndmk 0x12345678(%eax), %bnd0");4368 asm volatile("bndmk 0x12345678(%ebp), %bnd0");4369 asm volatile("bndmk 0x12345678(%ecx,%eax,1), %bnd0");4370 asm volatile("bndmk 0x12345678(%ebp,%eax,1), %bnd0");4371 asm volatile("bndmk 0x12345678(%eax,%ecx,1), %bnd0");4372 asm volatile("bndmk 0x12345678(%eax,%ecx,8), %bnd0");4373 4374 /* bndcl r/m32, bnd */4375 4376 asm volatile("bndcl (%eax), %bnd0");4377 asm volatile("bndcl (0x12345678), %bnd0");4378 asm volatile("bndcl (%eax), %bnd3");4379 asm volatile("bndcl (%ecx,%eax,1), %bnd0");4380 asm volatile("bndcl 0x12345678(,%eax,1), %bnd0");4381 asm volatile("bndcl (%eax,%ecx,1), %bnd0");4382 asm volatile("bndcl (%eax,%ecx,8), %bnd0");4383 asm volatile("bndcl 0x12(%eax), %bnd0");4384 asm volatile("bndcl 0x12(%ebp), %bnd0");4385 asm volatile("bndcl 0x12(%ecx,%eax,1), %bnd0");4386 asm volatile("bndcl 0x12(%ebp,%eax,1), %bnd0");4387 asm volatile("bndcl 0x12(%eax,%ecx,1), %bnd0");4388 asm volatile("bndcl 0x12(%eax,%ecx,8), %bnd0");4389 asm volatile("bndcl 0x12345678(%eax), %bnd0");4390 asm volatile("bndcl 0x12345678(%ebp), %bnd0");4391 asm volatile("bndcl 0x12345678(%ecx,%eax,1), %bnd0");4392 asm volatile("bndcl 0x12345678(%ebp,%eax,1), %bnd0");4393 asm volatile("bndcl 0x12345678(%eax,%ecx,1), %bnd0");4394 asm volatile("bndcl 0x12345678(%eax,%ecx,8), %bnd0");4395 asm volatile("bndcl %eax, %bnd0");4396 4397 /* bndcu r/m32, bnd */4398 4399 asm volatile("bndcu (%eax), %bnd0");4400 asm volatile("bndcu (0x12345678), %bnd0");4401 asm volatile("bndcu (%eax), %bnd3");4402 asm volatile("bndcu (%ecx,%eax,1), %bnd0");4403 asm volatile("bndcu 0x12345678(,%eax,1), %bnd0");4404 asm volatile("bndcu (%eax,%ecx,1), %bnd0");4405 asm volatile("bndcu (%eax,%ecx,8), %bnd0");4406 asm volatile("bndcu 0x12(%eax), %bnd0");4407 asm volatile("bndcu 0x12(%ebp), %bnd0");4408 asm volatile("bndcu 0x12(%ecx,%eax,1), %bnd0");4409 asm volatile("bndcu 0x12(%ebp,%eax,1), %bnd0");4410 asm volatile("bndcu 0x12(%eax,%ecx,1), %bnd0");4411 asm volatile("bndcu 0x12(%eax,%ecx,8), %bnd0");4412 asm volatile("bndcu 0x12345678(%eax), %bnd0");4413 asm volatile("bndcu 0x12345678(%ebp), %bnd0");4414 asm volatile("bndcu 0x12345678(%ecx,%eax,1), %bnd0");4415 asm volatile("bndcu 0x12345678(%ebp,%eax,1), %bnd0");4416 asm volatile("bndcu 0x12345678(%eax,%ecx,1), %bnd0");4417 asm volatile("bndcu 0x12345678(%eax,%ecx,8), %bnd0");4418 asm volatile("bndcu %eax, %bnd0");4419 4420 /* bndcn r/m32, bnd */4421 4422 asm volatile("bndcn (%eax), %bnd0");4423 asm volatile("bndcn (0x12345678), %bnd0");4424 asm volatile("bndcn (%eax), %bnd3");4425 asm volatile("bndcn (%ecx,%eax,1), %bnd0");4426 asm volatile("bndcn 0x12345678(,%eax,1), %bnd0");4427 asm volatile("bndcn (%eax,%ecx,1), %bnd0");4428 asm volatile("bndcn (%eax,%ecx,8), %bnd0");4429 asm volatile("bndcn 0x12(%eax), %bnd0");4430 asm volatile("bndcn 0x12(%ebp), %bnd0");4431 asm volatile("bndcn 0x12(%ecx,%eax,1), %bnd0");4432 asm volatile("bndcn 0x12(%ebp,%eax,1), %bnd0");4433 asm volatile("bndcn 0x12(%eax,%ecx,1), %bnd0");4434 asm volatile("bndcn 0x12(%eax,%ecx,8), %bnd0");4435 asm volatile("bndcn 0x12345678(%eax), %bnd0");4436 asm volatile("bndcn 0x12345678(%ebp), %bnd0");4437 asm volatile("bndcn 0x12345678(%ecx,%eax,1), %bnd0");4438 asm volatile("bndcn 0x12345678(%ebp,%eax,1), %bnd0");4439 asm volatile("bndcn 0x12345678(%eax,%ecx,1), %bnd0");4440 asm volatile("bndcn 0x12345678(%eax,%ecx,8), %bnd0");4441 asm volatile("bndcn %eax, %bnd0");4442 4443 /* bndmov m64, bnd */4444 4445 asm volatile("bndmov (%eax), %bnd0");4446 asm volatile("bndmov (0x12345678), %bnd0");4447 asm volatile("bndmov (%eax), %bnd3");4448 asm volatile("bndmov (%ecx,%eax,1), %bnd0");4449 asm volatile("bndmov 0x12345678(,%eax,1), %bnd0");4450 asm volatile("bndmov (%eax,%ecx,1), %bnd0");4451 asm volatile("bndmov (%eax,%ecx,8), %bnd0");4452 asm volatile("bndmov 0x12(%eax), %bnd0");4453 asm volatile("bndmov 0x12(%ebp), %bnd0");4454 asm volatile("bndmov 0x12(%ecx,%eax,1), %bnd0");4455 asm volatile("bndmov 0x12(%ebp,%eax,1), %bnd0");4456 asm volatile("bndmov 0x12(%eax,%ecx,1), %bnd0");4457 asm volatile("bndmov 0x12(%eax,%ecx,8), %bnd0");4458 asm volatile("bndmov 0x12345678(%eax), %bnd0");4459 asm volatile("bndmov 0x12345678(%ebp), %bnd0");4460 asm volatile("bndmov 0x12345678(%ecx,%eax,1), %bnd0");4461 asm volatile("bndmov 0x12345678(%ebp,%eax,1), %bnd0");4462 asm volatile("bndmov 0x12345678(%eax,%ecx,1), %bnd0");4463 asm volatile("bndmov 0x12345678(%eax,%ecx,8), %bnd0");4464 4465 /* bndmov bnd, m64 */4466 4467 asm volatile("bndmov %bnd0, (%eax)");4468 asm volatile("bndmov %bnd0, (0x12345678)");4469 asm volatile("bndmov %bnd3, (%eax)");4470 asm volatile("bndmov %bnd0, (%ecx,%eax,1)");4471 asm volatile("bndmov %bnd0, 0x12345678(,%eax,1)");4472 asm volatile("bndmov %bnd0, (%eax,%ecx,1)");4473 asm volatile("bndmov %bnd0, (%eax,%ecx,8)");4474 asm volatile("bndmov %bnd0, 0x12(%eax)");4475 asm volatile("bndmov %bnd0, 0x12(%ebp)");4476 asm volatile("bndmov %bnd0, 0x12(%ecx,%eax,1)");4477 asm volatile("bndmov %bnd0, 0x12(%ebp,%eax,1)");4478 asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,1)");4479 asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,8)");4480 asm volatile("bndmov %bnd0, 0x12345678(%eax)");4481 asm volatile("bndmov %bnd0, 0x12345678(%ebp)");4482 asm volatile("bndmov %bnd0, 0x12345678(%ecx,%eax,1)");4483 asm volatile("bndmov %bnd0, 0x12345678(%ebp,%eax,1)");4484 asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,1)");4485 asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,8)");4486 4487 /* bndmov bnd2, bnd1 */4488 4489 asm volatile("bndmov %bnd0, %bnd1");4490 asm volatile("bndmov %bnd1, %bnd0");4491 4492 /* bndldx mib, bnd */4493 4494 asm volatile("bndldx (%eax), %bnd0");4495 asm volatile("bndldx (0x12345678), %bnd0");4496 asm volatile("bndldx (%eax), %bnd3");4497 asm volatile("bndldx (%ecx,%eax,1), %bnd0");4498 asm volatile("bndldx 0x12345678(,%eax,1), %bnd0");4499 asm volatile("bndldx (%eax,%ecx,1), %bnd0");4500 asm volatile("bndldx 0x12(%eax), %bnd0");4501 asm volatile("bndldx 0x12(%ebp), %bnd0");4502 asm volatile("bndldx 0x12(%ecx,%eax,1), %bnd0");4503 asm volatile("bndldx 0x12(%ebp,%eax,1), %bnd0");4504 asm volatile("bndldx 0x12(%eax,%ecx,1), %bnd0");4505 asm volatile("bndldx 0x12345678(%eax), %bnd0");4506 asm volatile("bndldx 0x12345678(%ebp), %bnd0");4507 asm volatile("bndldx 0x12345678(%ecx,%eax,1), %bnd0");4508 asm volatile("bndldx 0x12345678(%ebp,%eax,1), %bnd0");4509 asm volatile("bndldx 0x12345678(%eax,%ecx,1), %bnd0");4510 4511 /* bndstx bnd, mib */4512 4513 asm volatile("bndstx %bnd0, (%eax)");4514 asm volatile("bndstx %bnd0, (0x12345678)");4515 asm volatile("bndstx %bnd3, (%eax)");4516 asm volatile("bndstx %bnd0, (%ecx,%eax,1)");4517 asm volatile("bndstx %bnd0, 0x12345678(,%eax,1)");4518 asm volatile("bndstx %bnd0, (%eax,%ecx,1)");4519 asm volatile("bndstx %bnd0, 0x12(%eax)");4520 asm volatile("bndstx %bnd0, 0x12(%ebp)");4521 asm volatile("bndstx %bnd0, 0x12(%ecx,%eax,1)");4522 asm volatile("bndstx %bnd0, 0x12(%ebp,%eax,1)");4523 asm volatile("bndstx %bnd0, 0x12(%eax,%ecx,1)");4524 asm volatile("bndstx %bnd0, 0x12345678(%eax)");4525 asm volatile("bndstx %bnd0, 0x12345678(%ebp)");4526 asm volatile("bndstx %bnd0, 0x12345678(%ecx,%eax,1)");4527 asm volatile("bndstx %bnd0, 0x12345678(%ebp,%eax,1)");4528 asm volatile("bndstx %bnd0, 0x12345678(%eax,%ecx,1)");4529 4530 /* bnd prefix on call, ret, jmp and all jcc */4531 4532 asm volatile("bnd call label1"); /* Expecting: call unconditional 0xfffffffc */4533 asm volatile("bnd call *(%eax)"); /* Expecting: call indirect 0 */4534 asm volatile("bnd ret"); /* Expecting: ret indirect 0 */4535 asm volatile("bnd jmp label1"); /* Expecting: jmp unconditional 0xfffffffc */4536 asm volatile("bnd jmp label1"); /* Expecting: jmp unconditional 0xfffffffc */4537 asm volatile("bnd jmp *(%ecx)"); /* Expecting: jmp indirect 0 */4538 asm volatile("bnd jne label1"); /* Expecting: jcc conditional 0xfffffffc */4539 4540 /* sha1rnds4 imm8, xmm2/m128, xmm1 */4541 4542 asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");4543 asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");4544 asm volatile("sha1rnds4 $0x91, (%eax), %xmm0");4545 asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");4546 asm volatile("sha1rnds4 $0x91, (%eax), %xmm3");4547 asm volatile("sha1rnds4 $0x91, (%ecx,%eax,1), %xmm0");4548 asm volatile("sha1rnds4 $0x91, 0x12345678(,%eax,1), %xmm0");4549 asm volatile("sha1rnds4 $0x91, (%eax,%ecx,1), %xmm0");4550 asm volatile("sha1rnds4 $0x91, (%eax,%ecx,8), %xmm0");4551 asm volatile("sha1rnds4 $0x91, 0x12(%eax), %xmm0");4552 asm volatile("sha1rnds4 $0x91, 0x12(%ebp), %xmm0");4553 asm volatile("sha1rnds4 $0x91, 0x12(%ecx,%eax,1), %xmm0");4554 asm volatile("sha1rnds4 $0x91, 0x12(%ebp,%eax,1), %xmm0");4555 asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,1), %xmm0");4556 asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,8), %xmm0");4557 asm volatile("sha1rnds4 $0x91, 0x12345678(%eax), %xmm0");4558 asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp), %xmm0");4559 asm volatile("sha1rnds4 $0x91, 0x12345678(%ecx,%eax,1), %xmm0");4560 asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp,%eax,1), %xmm0");4561 asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,1), %xmm0");4562 asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,8), %xmm0");4563 4564 /* sha1nexte xmm2/m128, xmm1 */4565 4566 asm volatile("sha1nexte %xmm1, %xmm0");4567 asm volatile("sha1nexte %xmm7, %xmm2");4568 asm volatile("sha1nexte (%eax), %xmm0");4569 asm volatile("sha1nexte (0x12345678), %xmm0");4570 asm volatile("sha1nexte (%eax), %xmm3");4571 asm volatile("sha1nexte (%ecx,%eax,1), %xmm0");4572 asm volatile("sha1nexte 0x12345678(,%eax,1), %xmm0");4573 asm volatile("sha1nexte (%eax,%ecx,1), %xmm0");4574 asm volatile("sha1nexte (%eax,%ecx,8), %xmm0");4575 asm volatile("sha1nexte 0x12(%eax), %xmm0");4576 asm volatile("sha1nexte 0x12(%ebp), %xmm0");4577 asm volatile("sha1nexte 0x12(%ecx,%eax,1), %xmm0");4578 asm volatile("sha1nexte 0x12(%ebp,%eax,1), %xmm0");4579 asm volatile("sha1nexte 0x12(%eax,%ecx,1), %xmm0");4580 asm volatile("sha1nexte 0x12(%eax,%ecx,8), %xmm0");4581 asm volatile("sha1nexte 0x12345678(%eax), %xmm0");4582 asm volatile("sha1nexte 0x12345678(%ebp), %xmm0");4583 asm volatile("sha1nexte 0x12345678(%ecx,%eax,1), %xmm0");4584 asm volatile("sha1nexte 0x12345678(%ebp,%eax,1), %xmm0");4585 asm volatile("sha1nexte 0x12345678(%eax,%ecx,1), %xmm0");4586 asm volatile("sha1nexte 0x12345678(%eax,%ecx,8), %xmm0");4587 4588 /* sha1msg1 xmm2/m128, xmm1 */4589 4590 asm volatile("sha1msg1 %xmm1, %xmm0");4591 asm volatile("sha1msg1 %xmm7, %xmm2");4592 asm volatile("sha1msg1 (%eax), %xmm0");4593 asm volatile("sha1msg1 (0x12345678), %xmm0");4594 asm volatile("sha1msg1 (%eax), %xmm3");4595 asm volatile("sha1msg1 (%ecx,%eax,1), %xmm0");4596 asm volatile("sha1msg1 0x12345678(,%eax,1), %xmm0");4597 asm volatile("sha1msg1 (%eax,%ecx,1), %xmm0");4598 asm volatile("sha1msg1 (%eax,%ecx,8), %xmm0");4599 asm volatile("sha1msg1 0x12(%eax), %xmm0");4600 asm volatile("sha1msg1 0x12(%ebp), %xmm0");4601 asm volatile("sha1msg1 0x12(%ecx,%eax,1), %xmm0");4602 asm volatile("sha1msg1 0x12(%ebp,%eax,1), %xmm0");4603 asm volatile("sha1msg1 0x12(%eax,%ecx,1), %xmm0");4604 asm volatile("sha1msg1 0x12(%eax,%ecx,8), %xmm0");4605 asm volatile("sha1msg1 0x12345678(%eax), %xmm0");4606 asm volatile("sha1msg1 0x12345678(%ebp), %xmm0");4607 asm volatile("sha1msg1 0x12345678(%ecx,%eax,1), %xmm0");4608 asm volatile("sha1msg1 0x12345678(%ebp,%eax,1), %xmm0");4609 asm volatile("sha1msg1 0x12345678(%eax,%ecx,1), %xmm0");4610 asm volatile("sha1msg1 0x12345678(%eax,%ecx,8), %xmm0");4611 4612 /* sha1msg2 xmm2/m128, xmm1 */4613 4614 asm volatile("sha1msg2 %xmm1, %xmm0");4615 asm volatile("sha1msg2 %xmm7, %xmm2");4616 asm volatile("sha1msg2 (%eax), %xmm0");4617 asm volatile("sha1msg2 (0x12345678), %xmm0");4618 asm volatile("sha1msg2 (%eax), %xmm3");4619 asm volatile("sha1msg2 (%ecx,%eax,1), %xmm0");4620 asm volatile("sha1msg2 0x12345678(,%eax,1), %xmm0");4621 asm volatile("sha1msg2 (%eax,%ecx,1), %xmm0");4622 asm volatile("sha1msg2 (%eax,%ecx,8), %xmm0");4623 asm volatile("sha1msg2 0x12(%eax), %xmm0");4624 asm volatile("sha1msg2 0x12(%ebp), %xmm0");4625 asm volatile("sha1msg2 0x12(%ecx,%eax,1), %xmm0");4626 asm volatile("sha1msg2 0x12(%ebp,%eax,1), %xmm0");4627 asm volatile("sha1msg2 0x12(%eax,%ecx,1), %xmm0");4628 asm volatile("sha1msg2 0x12(%eax,%ecx,8), %xmm0");4629 asm volatile("sha1msg2 0x12345678(%eax), %xmm0");4630 asm volatile("sha1msg2 0x12345678(%ebp), %xmm0");4631 asm volatile("sha1msg2 0x12345678(%ecx,%eax,1), %xmm0");4632 asm volatile("sha1msg2 0x12345678(%ebp,%eax,1), %xmm0");4633 asm volatile("sha1msg2 0x12345678(%eax,%ecx,1), %xmm0");4634 asm volatile("sha1msg2 0x12345678(%eax,%ecx,8), %xmm0");4635 4636 /* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */4637 /* Note sha256rnds2 has an implicit operand 'xmm0' */4638 4639 asm volatile("sha256rnds2 %xmm4, %xmm1");4640 asm volatile("sha256rnds2 %xmm7, %xmm2");4641 asm volatile("sha256rnds2 (%eax), %xmm1");4642 asm volatile("sha256rnds2 (0x12345678), %xmm1");4643 asm volatile("sha256rnds2 (%eax), %xmm3");4644 asm volatile("sha256rnds2 (%ecx,%eax,1), %xmm1");4645 asm volatile("sha256rnds2 0x12345678(,%eax,1), %xmm1");4646 asm volatile("sha256rnds2 (%eax,%ecx,1), %xmm1");4647 asm volatile("sha256rnds2 (%eax,%ecx,8), %xmm1");4648 asm volatile("sha256rnds2 0x12(%eax), %xmm1");4649 asm volatile("sha256rnds2 0x12(%ebp), %xmm1");4650 asm volatile("sha256rnds2 0x12(%ecx,%eax,1), %xmm1");4651 asm volatile("sha256rnds2 0x12(%ebp,%eax,1), %xmm1");4652 asm volatile("sha256rnds2 0x12(%eax,%ecx,1), %xmm1");4653 asm volatile("sha256rnds2 0x12(%eax,%ecx,8), %xmm1");4654 asm volatile("sha256rnds2 0x12345678(%eax), %xmm1");4655 asm volatile("sha256rnds2 0x12345678(%ebp), %xmm1");4656 asm volatile("sha256rnds2 0x12345678(%ecx,%eax,1), %xmm1");4657 asm volatile("sha256rnds2 0x12345678(%ebp,%eax,1), %xmm1");4658 asm volatile("sha256rnds2 0x12345678(%eax,%ecx,1), %xmm1");4659 asm volatile("sha256rnds2 0x12345678(%eax,%ecx,8), %xmm1");4660 4661 /* sha256msg1 xmm2/m128, xmm1 */4662 4663 asm volatile("sha256msg1 %xmm1, %xmm0");4664 asm volatile("sha256msg1 %xmm7, %xmm2");4665 asm volatile("sha256msg1 (%eax), %xmm0");4666 asm volatile("sha256msg1 (0x12345678), %xmm0");4667 asm volatile("sha256msg1 (%eax), %xmm3");4668 asm volatile("sha256msg1 (%ecx,%eax,1), %xmm0");4669 asm volatile("sha256msg1 0x12345678(,%eax,1), %xmm0");4670 asm volatile("sha256msg1 (%eax,%ecx,1), %xmm0");4671 asm volatile("sha256msg1 (%eax,%ecx,8), %xmm0");4672 asm volatile("sha256msg1 0x12(%eax), %xmm0");4673 asm volatile("sha256msg1 0x12(%ebp), %xmm0");4674 asm volatile("sha256msg1 0x12(%ecx,%eax,1), %xmm0");4675 asm volatile("sha256msg1 0x12(%ebp,%eax,1), %xmm0");4676 asm volatile("sha256msg1 0x12(%eax,%ecx,1), %xmm0");4677 asm volatile("sha256msg1 0x12(%eax,%ecx,8), %xmm0");4678 asm volatile("sha256msg1 0x12345678(%eax), %xmm0");4679 asm volatile("sha256msg1 0x12345678(%ebp), %xmm0");4680 asm volatile("sha256msg1 0x12345678(%ecx,%eax,1), %xmm0");4681 asm volatile("sha256msg1 0x12345678(%ebp,%eax,1), %xmm0");4682 asm volatile("sha256msg1 0x12345678(%eax,%ecx,1), %xmm0");4683 asm volatile("sha256msg1 0x12345678(%eax,%ecx,8), %xmm0");4684 4685 /* sha256msg2 xmm2/m128, xmm1 */4686 4687 asm volatile("sha256msg2 %xmm1, %xmm0");4688 asm volatile("sha256msg2 %xmm7, %xmm2");4689 asm volatile("sha256msg2 (%eax), %xmm0");4690 asm volatile("sha256msg2 (0x12345678), %xmm0");4691 asm volatile("sha256msg2 (%eax), %xmm3");4692 asm volatile("sha256msg2 (%ecx,%eax,1), %xmm0");4693 asm volatile("sha256msg2 0x12345678(,%eax,1), %xmm0");4694 asm volatile("sha256msg2 (%eax,%ecx,1), %xmm0");4695 asm volatile("sha256msg2 (%eax,%ecx,8), %xmm0");4696 asm volatile("sha256msg2 0x12(%eax), %xmm0");4697 asm volatile("sha256msg2 0x12(%ebp), %xmm0");4698 asm volatile("sha256msg2 0x12(%ecx,%eax,1), %xmm0");4699 asm volatile("sha256msg2 0x12(%ebp,%eax,1), %xmm0");4700 asm volatile("sha256msg2 0x12(%eax,%ecx,1), %xmm0");4701 asm volatile("sha256msg2 0x12(%eax,%ecx,8), %xmm0");4702 asm volatile("sha256msg2 0x12345678(%eax), %xmm0");4703 asm volatile("sha256msg2 0x12345678(%ebp), %xmm0");4704 asm volatile("sha256msg2 0x12345678(%ecx,%eax,1), %xmm0");4705 asm volatile("sha256msg2 0x12345678(%ebp,%eax,1), %xmm0");4706 asm volatile("sha256msg2 0x12345678(%eax,%ecx,1), %xmm0");4707 asm volatile("sha256msg2 0x12345678(%eax,%ecx,8), %xmm0");4708 4709 /* clflushopt m8 */4710 4711 asm volatile("clflushopt (%eax)");4712 asm volatile("clflushopt (0x12345678)");4713 asm volatile("clflushopt 0x12345678(%eax,%ecx,8)");4714 /* Also check instructions in the same group encoding as clflushopt */4715 asm volatile("clflush (%eax)");4716 asm volatile("sfence");4717 4718 /* clwb m8 */4719 4720 asm volatile("clwb (%eax)");4721 asm volatile("clwb (0x12345678)");4722 asm volatile("clwb 0x12345678(%eax,%ecx,8)");4723 /* Also check instructions in the same group encoding as clwb */4724 asm volatile("xsaveopt (%eax)");4725 asm volatile("mfence");4726 4727 /* cldemote m8 */4728 4729 asm volatile("cldemote (%eax)");4730 asm volatile("cldemote (0x12345678)");4731 asm volatile("cldemote 0x12345678(%eax,%ecx,8)");4732 4733 /* xsavec mem */4734 4735 asm volatile("xsavec (%eax)");4736 asm volatile("xsavec (0x12345678)");4737 asm volatile("xsavec 0x12345678(%eax,%ecx,8)");4738 4739 /* xsaves mem */4740 4741 asm volatile("xsaves (%eax)");4742 asm volatile("xsaves (0x12345678)");4743 asm volatile("xsaves 0x12345678(%eax,%ecx,8)");4744 4745 /* xrstors mem */4746 4747 asm volatile("xrstors (%eax)");4748 asm volatile("xrstors (0x12345678)");4749 asm volatile("xrstors 0x12345678(%eax,%ecx,8)");4750 4751 /* ptwrite */4752 4753 asm volatile("ptwrite (%eax)");4754 asm volatile("ptwrite (0x12345678)");4755 asm volatile("ptwrite 0x12345678(%eax,%ecx,8)");4756 4757 asm volatile("ptwritel (%eax)");4758 asm volatile("ptwritel (0x12345678)");4759 asm volatile("ptwritel 0x12345678(%eax,%ecx,8)");4760 4761 /* tpause */4762 4763 asm volatile("tpause %ebx");4764 4765 /* umonitor */4766 4767 asm volatile("umonitor %ax");4768 asm volatile("umonitor %eax");4769 4770 /* umwait */4771 4772 asm volatile("umwait %eax");4773 4774 /* movdiri */4775 4776 asm volatile("movdiri %eax,(%ebx)");4777 asm volatile("movdiri %ecx,0x12345678(%eax)");4778 4779 /* movdir64b */4780 4781 asm volatile("movdir64b (%eax),%ebx");4782 asm volatile("movdir64b 0x12345678(%eax),%ecx");4783 asm volatile("movdir64b (%si),%bx");4784 asm volatile("movdir64b 0x1234(%si),%cx");4785 4786 /* enqcmd */4787 4788 asm volatile("enqcmd (%eax),%ebx");4789 asm volatile("enqcmd 0x12345678(%eax),%ecx");4790 asm volatile("enqcmd (%si),%bx");4791 asm volatile("enqcmd 0x1234(%si),%cx");4792 4793 /* enqcmds */4794 4795 asm volatile("enqcmds (%eax),%ebx");4796 asm volatile("enqcmds 0x12345678(%eax),%ecx");4797 asm volatile("enqcmds (%si),%bx");4798 asm volatile("enqcmds 0x1234(%si),%cx");4799 4800 /* incsspd */4801 4802 asm volatile("incsspd %eax");4803 /* Also check instructions in the same group encoding as incsspd */4804 asm volatile("xrstor (%eax)");4805 asm volatile("xrstor (0x12345678)");4806 asm volatile("xrstor 0x12345678(%eax,%ecx,8)");4807 asm volatile("lfence");4808 4809 /* rdsspd */4810 4811 asm volatile("rdsspd %eax");4812 4813 /* saveprevssp */4814 4815 asm volatile("saveprevssp");4816 4817 /* rstorssp */4818 4819 asm volatile("rstorssp (%eax)");4820 asm volatile("rstorssp (0x12345678)");4821 asm volatile("rstorssp 0x12345678(%eax,%ecx,8)");4822 4823 /* wrssd */4824 4825 asm volatile("wrssd %ecx,(%eax)");4826 asm volatile("wrssd %edx,(0x12345678)");4827 asm volatile("wrssd %edx,0x12345678(%eax,%ecx,8)");4828 4829 /* wrussd */4830 4831 asm volatile("wrussd %ecx,(%eax)");4832 asm volatile("wrussd %edx,(0x12345678)");4833 asm volatile("wrussd %edx,0x12345678(%eax,%ecx,8)");4834 4835 /* setssbsy */4836 4837 asm volatile("setssbsy");4838 /* Also check instructions in the same group encoding as setssbsy */4839 asm volatile("rdpkru");4840 asm volatile("wrpkru");4841 4842 /* clrssbsy */4843 4844 asm volatile("clrssbsy (%eax)");4845 asm volatile("clrssbsy (0x12345678)");4846 asm volatile("clrssbsy 0x12345678(%eax,%ecx,8)");4847 4848 /* endbr32/64 */4849 4850 asm volatile("endbr32");4851 asm volatile("endbr64");4852 4853 /* call with/without notrack prefix */4854 4855 asm volatile("call *%eax"); /* Expecting: call indirect 0 */4856 asm volatile("call *(%eax)"); /* Expecting: call indirect 0 */4857 asm volatile("call *(0x12345678)"); /* Expecting: call indirect 0 */4858 asm volatile("call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */4859 4860 asm volatile("bnd call *%eax"); /* Expecting: call indirect 0 */4861 asm volatile("bnd call *(%eax)"); /* Expecting: call indirect 0 */4862 asm volatile("bnd call *(0x12345678)"); /* Expecting: call indirect 0 */4863 asm volatile("bnd call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */4864 4865 asm volatile("notrack call *%eax"); /* Expecting: call indirect 0 */4866 asm volatile("notrack call *(%eax)"); /* Expecting: call indirect 0 */4867 asm volatile("notrack call *(0x12345678)"); /* Expecting: call indirect 0 */4868 asm volatile("notrack call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */4869 4870 asm volatile("notrack bnd call *%eax"); /* Expecting: call indirect 0 */4871 asm volatile("notrack bnd call *(%eax)"); /* Expecting: call indirect 0 */4872 asm volatile("notrack bnd call *(0x12345678)"); /* Expecting: call indirect 0 */4873 asm volatile("notrack bnd call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */4874 4875 /* jmp with/without notrack prefix */4876 4877 asm volatile("jmp *%eax"); /* Expecting: jmp indirect 0 */4878 asm volatile("jmp *(%eax)"); /* Expecting: jmp indirect 0 */4879 asm volatile("jmp *(0x12345678)"); /* Expecting: jmp indirect 0 */4880 asm volatile("jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */4881 4882 asm volatile("bnd jmp *%eax"); /* Expecting: jmp indirect 0 */4883 asm volatile("bnd jmp *(%eax)"); /* Expecting: jmp indirect 0 */4884 asm volatile("bnd jmp *(0x12345678)"); /* Expecting: jmp indirect 0 */4885 asm volatile("bnd jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */4886 4887 asm volatile("notrack jmp *%eax"); /* Expecting: jmp indirect 0 */4888 asm volatile("notrack jmp *(%eax)"); /* Expecting: jmp indirect 0 */4889 asm volatile("notrack jmp *(0x12345678)"); /* Expecting: jmp indirect 0 */4890 asm volatile("notrack jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */4891 4892 asm volatile("notrack bnd jmp *%eax"); /* Expecting: jmp indirect 0 */4893 asm volatile("notrack bnd jmp *(%eax)"); /* Expecting: jmp indirect 0 */4894 asm volatile("notrack bnd jmp *(0x12345678)"); /* Expecting: jmp indirect 0 */4895 asm volatile("notrack bnd jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */4896 4897 /* AVX512-FP16 */4898 4899 asm volatile("vaddph %zmm3, %zmm2, %zmm1");4900 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");4901 asm volatile("vaddph %xmm3, %xmm2, %xmm1");4902 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");4903 asm volatile("vaddph %ymm3, %ymm2, %ymm1");4904 asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");4905 asm volatile("vaddsh %xmm3, %xmm2, %xmm1");4906 asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");4907 asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");4908 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");4909 asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");4910 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");4911 asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");4912 asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");4913 asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");4914 asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");4915 asm volatile("vcomish %xmm2, %xmm1");4916 asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");4917 asm volatile("vcvtdq2ph %zmm2, %ymm1");4918 asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");4919 asm volatile("vcvtdq2ph %xmm2, %xmm1");4920 asm volatile("vcvtdq2ph %ymm2, %xmm1");4921 asm volatile("vcvtpd2ph %zmm2, %xmm1");4922 asm volatile("vcvtpd2ph %xmm2, %xmm1");4923 asm volatile("vcvtpd2ph %ymm2, %xmm1");4924 asm volatile("vcvtph2dq %ymm2, %zmm1");4925 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");4926 asm volatile("vcvtph2dq %xmm2, %xmm1");4927 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");4928 asm volatile("vcvtph2dq %xmm2, %ymm1");4929 asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");4930 asm volatile("vcvtph2pd %xmm2, %zmm1");4931 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");4932 asm volatile("vcvtph2pd %xmm2, %xmm1");4933 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");4934 asm volatile("vcvtph2pd %xmm2, %ymm1");4935 asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");4936 asm volatile("vcvtph2ps %ymm2, %zmm1");4937 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");4938 asm volatile("vcvtph2ps %xmm2, %xmm1");4939 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");4940 asm volatile("vcvtph2ps %xmm2, %ymm1");4941 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");4942 asm volatile("vcvtph2ps %xmm2, %xmm1");4943 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");4944 asm volatile("vcvtph2ps %xmm2, %ymm1");4945 asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");4946 asm volatile("vcvtph2psx %ymm2, %zmm1");4947 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");4948 asm volatile("vcvtph2psx %xmm2, %xmm1");4949 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");4950 asm volatile("vcvtph2psx %xmm2, %ymm1");4951 asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");4952 asm volatile("vcvtph2qq %xmm2, %zmm1");4953 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");4954 asm volatile("vcvtph2qq %xmm2, %xmm1");4955 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");4956 asm volatile("vcvtph2qq %xmm2, %ymm1");4957 asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");4958 asm volatile("vcvtph2udq %ymm2, %zmm1");4959 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");4960 asm volatile("vcvtph2udq %xmm2, %xmm1");4961 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");4962 asm volatile("vcvtph2udq %xmm2, %ymm1");4963 asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");4964 asm volatile("vcvtph2uqq %xmm2, %zmm1");4965 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");4966 asm volatile("vcvtph2uqq %xmm2, %xmm1");4967 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");4968 asm volatile("vcvtph2uqq %xmm2, %ymm1");4969 asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");4970 asm volatile("vcvtph2uw %zmm2, %zmm1");4971 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");4972 asm volatile("vcvtph2uw %xmm2, %xmm1");4973 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");4974 asm volatile("vcvtph2uw %ymm2, %ymm1");4975 asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");4976 asm volatile("vcvtph2w %zmm2, %zmm1");4977 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");4978 asm volatile("vcvtph2w %xmm2, %xmm1");4979 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");4980 asm volatile("vcvtph2w %ymm2, %ymm1");4981 asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");4982 asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");4983 asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");4984 asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");4985 asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");4986 asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");4987 asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");4988 asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");4989 asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");4990 asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");4991 asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");4992 asm volatile("vcvtps2phx %zmm2, %ymm1");4993 asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");4994 asm volatile("vcvtps2phx %xmm2, %xmm1");4995 asm volatile("vcvtps2phx %ymm2, %xmm1");4996 asm volatile("vcvtqq2ph %zmm2, %xmm1");4997 asm volatile("vcvtqq2ph %xmm2, %xmm1");4998 asm volatile("vcvtqq2ph %ymm2, %xmm1");4999 asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5000 asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5001 asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");5002 asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5003 asm volatile("vcvtsh2usi %xmm1, %eax");5004 asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");5005 asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");5006 asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5007 asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5008 asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");5009 asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5010 asm volatile("vcvttph2dq %ymm2, %zmm1");5011 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");5012 asm volatile("vcvttph2dq %xmm2, %xmm1");5013 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");5014 asm volatile("vcvttph2dq %xmm2, %ymm1");5015 asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");5016 asm volatile("vcvttph2qq %xmm2, %zmm1");5017 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");5018 asm volatile("vcvttph2qq %xmm2, %xmm1");5019 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");5020 asm volatile("vcvttph2qq %xmm2, %ymm1");5021 asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");5022 asm volatile("vcvttph2udq %ymm2, %zmm1");5023 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");5024 asm volatile("vcvttph2udq %xmm2, %xmm1");5025 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");5026 asm volatile("vcvttph2udq %xmm2, %ymm1");5027 asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");5028 asm volatile("vcvttph2uqq %xmm2, %zmm1");5029 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");5030 asm volatile("vcvttph2uqq %xmm2, %xmm1");5031 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");5032 asm volatile("vcvttph2uqq %xmm2, %ymm1");5033 asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");5034 asm volatile("vcvttph2uw %zmm2, %zmm1");5035 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");5036 asm volatile("vcvttph2uw %xmm2, %xmm1");5037 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");5038 asm volatile("vcvttph2uw %ymm2, %ymm1");5039 asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");5040 asm volatile("vcvttph2w %zmm2, %zmm1");5041 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");5042 asm volatile("vcvttph2w %xmm2, %xmm1");5043 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");5044 asm volatile("vcvttph2w %ymm2, %ymm1");5045 asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");5046 asm volatile("vcvttsh2si %xmm1, %eax");5047 asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");5048 asm volatile("vcvttsh2usi %xmm1, %eax");5049 asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");5050 asm volatile("vcvtudq2ph %zmm2, %ymm1");5051 asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");5052 asm volatile("vcvtudq2ph %xmm2, %xmm1");5053 asm volatile("vcvtudq2ph %ymm2, %xmm1");5054 asm volatile("vcvtuqq2ph %zmm2, %xmm1");5055 asm volatile("vcvtuqq2ph %xmm2, %xmm1");5056 asm volatile("vcvtuqq2ph %ymm2, %xmm1");5057 asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");5058 asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5059 asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5060 asm volatile("vcvtuw2ph %zmm2, %zmm1");5061 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");5062 asm volatile("vcvtuw2ph %xmm2, %xmm1");5063 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");5064 asm volatile("vcvtuw2ph %ymm2, %ymm1");5065 asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");5066 asm volatile("vcvtw2ph %zmm2, %zmm1");5067 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");5068 asm volatile("vcvtw2ph %xmm2, %xmm1");5069 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");5070 asm volatile("vcvtw2ph %ymm2, %ymm1");5071 asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");5072 asm volatile("vdivph %zmm3, %zmm2, %zmm1");5073 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5074 asm volatile("vdivph %xmm3, %xmm2, %xmm1");5075 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5076 asm volatile("vdivph %ymm3, %ymm2, %ymm1");5077 asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5078 asm volatile("vdivsh %xmm3, %xmm2, %xmm1");5079 asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5080 asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");5081 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5082 asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");5083 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5084 asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");5085 asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5086 asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");5087 asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5088 asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");5089 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5090 asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");5091 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5092 asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");5093 asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5094 asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");5095 asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5096 asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");5097 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5098 asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");5099 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5100 asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");5101 asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5102 asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");5103 asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5104 asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");5105 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5106 asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");5107 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5108 asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");5109 asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5110 asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");5111 asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5112 asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");5113 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5114 asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");5115 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5116 asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");5117 asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5118 asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");5119 asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5120 asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");5121 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5122 asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");5123 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5124 asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");5125 asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5126 asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");5127 asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5128 asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");5129 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5130 asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");5131 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5132 asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");5133 asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5134 asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");5135 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5136 asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");5137 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5138 asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");5139 asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5140 asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");5141 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5142 asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");5143 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5144 asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");5145 asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5146 asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");5147 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5148 asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");5149 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5150 asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");5151 asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5152 asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");5153 asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5154 asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");5155 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5156 asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");5157 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5158 asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");5159 asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5160 asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");5161 asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5162 asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");5163 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5164 asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");5165 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5166 asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");5167 asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5168 asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");5169 asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5170 asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");5171 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5172 asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");5173 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5174 asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");5175 asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5176 asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");5177 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5178 asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");5179 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5180 asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");5181 asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5182 asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");5183 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5184 asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");5185 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5186 asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");5187 asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5188 asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");5189 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5190 asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");5191 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5192 asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");5193 asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5194 asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");5195 asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5196 asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");5197 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5198 asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");5199 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5200 asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");5201 asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5202 asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");5203 asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5204 asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");5205 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5206 asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");5207 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5208 asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");5209 asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5210 asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");5211 asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5212 asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");5213 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5214 asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");5215 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5216 asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");5217 asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5218 asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");5219 asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5220 asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");5221 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5222 asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");5223 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5224 asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");5225 asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5226 asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");5227 asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5228 asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");5229 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5230 asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");5231 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5232 asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");5233 asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5234 asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");5235 asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5236 asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");5237 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5238 asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");5239 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5240 asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");5241 asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5242 asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");5243 asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5244 asm volatile("vfpclassph $0x12, %zmm1, %k5");5245 asm volatile("vfpclassph $0x12, %xmm1, %k5");5246 asm volatile("vfpclassph $0x12, %ymm1, %k5");5247 asm volatile("vfpclasssh $0x12, %xmm1, %k5");5248 asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");5249 asm volatile("vgetexpph %zmm2, %zmm1");5250 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");5251 asm volatile("vgetexpph %xmm2, %xmm1");5252 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");5253 asm volatile("vgetexpph %ymm2, %ymm1");5254 asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");5255 asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");5256 asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5257 asm volatile("vgetmantph $0x12, %zmm2, %zmm1");5258 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");5259 asm volatile("vgetmantph $0x12, %xmm2, %xmm1");5260 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");5261 asm volatile("vgetmantph $0x12, %ymm2, %ymm1");5262 asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");5263 asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");5264 asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5265 asm volatile("vmaxph %zmm3, %zmm2, %zmm1");5266 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5267 asm volatile("vmaxph %xmm3, %xmm2, %xmm1");5268 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5269 asm volatile("vmaxph %ymm3, %ymm2, %ymm1");5270 asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5271 asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");5272 asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5273 asm volatile("vminph %zmm3, %zmm2, %zmm1");5274 asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5275 asm volatile("vminph %xmm3, %xmm2, %xmm1");5276 asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5277 asm volatile("vminph %ymm3, %ymm2, %ymm1");5278 asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5279 asm volatile("vminsh %xmm3, %xmm2, %xmm1");5280 asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5281 asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");5282 asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");5283 asm volatile("vmovsh %xmm3, %xmm2, %xmm1");5284 asm volatile("vmovw %xmm1, %eax");5285 asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");5286 asm volatile("vmovw %eax, %xmm1");5287 asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");5288 asm volatile("vmulph %zmm3, %zmm2, %zmm1");5289 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5290 asm volatile("vmulph %xmm3, %xmm2, %xmm1");5291 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5292 asm volatile("vmulph %ymm3, %ymm2, %ymm1");5293 asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5294 asm volatile("vmulsh %xmm3, %xmm2, %xmm1");5295 asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5296 asm volatile("vrcpph %zmm2, %zmm1");5297 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");5298 asm volatile("vrcpph %xmm2, %xmm1");5299 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");5300 asm volatile("vrcpph %ymm2, %ymm1");5301 asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");5302 asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");5303 asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5304 asm volatile("vreduceph $0x12, %zmm2, %zmm1");5305 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");5306 asm volatile("vreduceph $0x12, %xmm2, %xmm1");5307 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");5308 asm volatile("vreduceph $0x12, %ymm2, %ymm1");5309 asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");5310 asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");5311 asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5312 asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");5313 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");5314 asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");5315 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");5316 asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");5317 asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");5318 asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");5319 asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5320 asm volatile("vrsqrtph %zmm2, %zmm1");5321 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");5322 asm volatile("vrsqrtph %xmm2, %xmm1");5323 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");5324 asm volatile("vrsqrtph %ymm2, %ymm1");5325 asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");5326 asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");5327 asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5328 asm volatile("vscalefph %zmm3, %zmm2, %zmm1");5329 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5330 asm volatile("vscalefph %xmm3, %xmm2, %xmm1");5331 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5332 asm volatile("vscalefph %ymm3, %ymm2, %ymm1");5333 asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5334 asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");5335 asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5336 asm volatile("vsqrtph %zmm2, %zmm1");5337 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");5338 asm volatile("vsqrtph %xmm2, %xmm1");5339 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");5340 asm volatile("vsqrtph %ymm2, %ymm1");5341 asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");5342 asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");5343 asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5344 asm volatile("vsubph %zmm3, %zmm2, %zmm1");5345 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");5346 asm volatile("vsubph %xmm3, %xmm2, %xmm1");5347 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5348 asm volatile("vsubph %ymm3, %ymm2, %ymm1");5349 asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");5350 asm volatile("vsubsh %xmm3, %xmm2, %xmm1");5351 asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");5352 asm volatile("vucomish %xmm2, %xmm1");5353 asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");5354 5355#endif /* #ifndef __x86_64__ */5356 5357 /* Key Locker */5358 5359 asm volatile(" loadiwkey %xmm1, %xmm2");5360 asm volatile(" encodekey128 %eax, %edx");5361 asm volatile(" encodekey256 %eax, %edx");5362 asm volatile(" aesenc128kl 0x77(%edx), %xmm3");5363 asm volatile(" aesenc256kl 0x77(%edx), %xmm3");5364 asm volatile(" aesdec128kl 0x77(%edx), %xmm3");5365 asm volatile(" aesdec256kl 0x77(%edx), %xmm3");5366 asm volatile(" aesencwide128kl 0x77(%edx)");5367 asm volatile(" aesencwide256kl 0x77(%edx)");5368 asm volatile(" aesdecwide128kl 0x77(%edx)");5369 asm volatile(" aesdecwide256kl 0x77(%edx)");5370 5371 /* Remote Atomic Operations */5372 5373 asm volatile("aadd %ecx,(%eax)");5374 asm volatile("aadd %edx,(0x12345678)");5375 asm volatile("aadd %edx,0x12345678(%eax,%ecx,8)");5376 5377 asm volatile("aand %ecx,(%eax)");5378 asm volatile("aand %edx,(0x12345678)");5379 asm volatile("aand %edx,0x12345678(%eax,%ecx,8)");5380 5381 asm volatile("aor %ecx,(%eax)");5382 asm volatile("aor %edx,(0x12345678)");5383 asm volatile("aor %edx,0x12345678(%eax,%ecx,8)");5384 5385 asm volatile("axor %ecx,(%eax)");5386 asm volatile("axor %edx,(0x12345678)");5387 asm volatile("axor %edx,0x12345678(%eax,%ecx,8)");5388 5389 /* AVX NE Convert */5390 5391 asm volatile("vbcstnebf162ps (%ecx),%xmm6");5392 asm volatile("vbcstnesh2ps (%ecx),%xmm6");5393 asm volatile("vcvtneebf162ps (%ecx),%xmm6");5394 asm volatile("vcvtneeph2ps (%ecx),%xmm6");5395 asm volatile("vcvtneobf162ps (%ecx),%xmm6");5396 asm volatile("vcvtneoph2ps (%ecx),%xmm6");5397 asm volatile("vcvtneps2bf16 %xmm1,%xmm6");5398 5399 /* AVX VNNI INT16 */5400 5401 asm volatile("vpdpbssd %xmm1,%xmm2,%xmm3");5402 asm volatile("vpdpbssds %xmm1,%xmm2,%xmm3");5403 asm volatile("vpdpbsud %xmm1,%xmm2,%xmm3");5404 asm volatile("vpdpbsuds %xmm1,%xmm2,%xmm3");5405 asm volatile("vpdpbuud %xmm1,%xmm2,%xmm3");5406 asm volatile("vpdpbuuds %xmm1,%xmm2,%xmm3");5407 asm volatile("vpdpwsud %xmm1,%xmm2,%xmm3");5408 asm volatile("vpdpwsuds %xmm1,%xmm2,%xmm3");5409 asm volatile("vpdpwusd %xmm1,%xmm2,%xmm3");5410 asm volatile("vpdpwusds %xmm1,%xmm2,%xmm3");5411 asm volatile("vpdpwuud %xmm1,%xmm2,%xmm3");5412 asm volatile("vpdpwuuds %xmm1,%xmm2,%xmm3");5413 5414 /* AVX IFMA */5415 5416 asm volatile("vpmadd52huq %xmm1,%xmm2,%xmm3");5417 asm volatile("vpmadd52luq %xmm1,%xmm2,%xmm3");5418 5419 /* AVX SHA512 */5420 5421 asm volatile("vsha512msg1 %xmm1,%ymm2");5422 asm volatile("vsha512msg2 %ymm1,%ymm2");5423 asm volatile("vsha512rnds2 %xmm1,%ymm2,%ymm3");5424 5425 /* AVX SM3 */5426 5427 asm volatile("vsm3msg1 %xmm1,%xmm2,%xmm3");5428 asm volatile("vsm3msg2 %xmm1,%xmm2,%xmm3");5429 asm volatile("vsm3rnds2 $0xa1,%xmm1,%xmm2,%xmm3");5430 5431 /* AVX SM4 */5432 5433 asm volatile("vsm4key4 %xmm1,%xmm2,%xmm3");5434 asm volatile("vsm4rnds4 %xmm1,%xmm2,%xmm3");5435 5436 /* Pre-fetch */5437 5438 asm volatile("prefetch (%eax)");5439 asm volatile("prefetcht0 (%eax)");5440 asm volatile("prefetcht1 (%eax)");5441 asm volatile("prefetcht2 (%eax)");5442 asm volatile("prefetchnta (%eax)");5443 5444 /* Non-serializing write MSR */5445 5446 asm volatile("wrmsrns");5447 5448 /* Prediction history reset */5449 5450 asm volatile("hreset $0");5451 5452 /* Serialize instruction execution */5453 5454 asm volatile("serialize");5455 5456 /* TSX suspend load address tracking */5457 5458 asm volatile("xresldtrk");5459 asm volatile("xsusldtrk");5460 5461 /* SGX */5462 5463 asm volatile("encls");5464 asm volatile("enclu");5465 asm volatile("enclv");5466 5467 /* pconfig */5468 5469 asm volatile("pconfig");5470 5471 /* wbnoinvd */5472 5473 asm volatile("wbnoinvd");5474 5475 /* Following line is a marker for the awk script - do not change */5476 asm volatile("rdtsc"); /* Stop here */5477 5478 return 0;5479}5480