1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
2d8b167f9SMatt Fleming /*
3d8b167f9SMatt Fleming  * This file contains instructions for testing by the test titled:
4d8b167f9SMatt Fleming  *
5d8b167f9SMatt Fleming  *         "Test x86 instruction decoder - new instructions"
6d8b167f9SMatt Fleming  *
7d8b167f9SMatt Fleming  * Note that the 'Expecting' comment lines are consumed by the
8d8b167f9SMatt Fleming  * gen-insn-x86-dat.awk script and have the format:
9d8b167f9SMatt Fleming  *
10d8b167f9SMatt Fleming  *         Expecting: <op> <branch> <rel>
11d8b167f9SMatt Fleming  *
12d8b167f9SMatt Fleming  * If this file is changed, remember to run the gen-insn-x86-dat.sh
13d8b167f9SMatt Fleming  * script and commit the result.
14d8b167f9SMatt Fleming  *
15d8b167f9SMatt Fleming  * Refer to insn-x86.c for more details.
16d8b167f9SMatt Fleming  */
17d8b167f9SMatt Fleming 
main(void)18d8b167f9SMatt Fleming int main(void)
19d8b167f9SMatt Fleming {
20d8b167f9SMatt Fleming 	/* Following line is a marker for the awk script - do not change */
21d8b167f9SMatt Fleming 	asm volatile("rdtsc"); /* Start here */
22d8b167f9SMatt Fleming 
236f6ef07fSAdrian Hunter 	/* Test fix for vcvtph2ps in x86-opcode-map.txt */
246f6ef07fSAdrian Hunter 
256f6ef07fSAdrian Hunter 	asm volatile("vcvtph2ps %xmm3,%ymm5");
266f6ef07fSAdrian Hunter 
27d8b167f9SMatt Fleming #ifdef __x86_64__
28d8b167f9SMatt Fleming 
296c4d0b41SAdrian Hunter 	/* AVX-512: Instructions with the same op codes as Mask Instructions  */
306c4d0b41SAdrian Hunter 
316c4d0b41SAdrian Hunter 	asm volatile("cmovno %rax,%rbx");
326c4d0b41SAdrian Hunter 	asm volatile("cmovno 0x12345678(%rax),%rcx");
336c4d0b41SAdrian Hunter 	asm volatile("cmovno 0x12345678(%rax),%cx");
346c4d0b41SAdrian Hunter 
356c4d0b41SAdrian Hunter 	asm volatile("cmove  %rax,%rbx");
366c4d0b41SAdrian Hunter 	asm volatile("cmove 0x12345678(%rax),%rcx");
376c4d0b41SAdrian Hunter 	asm volatile("cmove 0x12345678(%rax),%cx");
386c4d0b41SAdrian Hunter 
396c4d0b41SAdrian Hunter 	asm volatile("seto    0x12345678(%rax)");
406c4d0b41SAdrian Hunter 	asm volatile("setno   0x12345678(%rax)");
416c4d0b41SAdrian Hunter 	asm volatile("setb    0x12345678(%rax)");
426c4d0b41SAdrian Hunter 	asm volatile("setc    0x12345678(%rax)");
436c4d0b41SAdrian Hunter 	asm volatile("setnae  0x12345678(%rax)");
446c4d0b41SAdrian Hunter 	asm volatile("setae   0x12345678(%rax)");
456c4d0b41SAdrian Hunter 	asm volatile("setnb   0x12345678(%rax)");
466c4d0b41SAdrian Hunter 	asm volatile("setnc   0x12345678(%rax)");
476c4d0b41SAdrian Hunter 	asm volatile("sets    0x12345678(%rax)");
486c4d0b41SAdrian Hunter 	asm volatile("setns   0x12345678(%rax)");
496c4d0b41SAdrian Hunter 
506c4d0b41SAdrian Hunter 	/* AVX-512: Mask Instructions */
516c4d0b41SAdrian Hunter 
526c4d0b41SAdrian Hunter 	asm volatile("kandw  %k7,%k6,%k5");
536c4d0b41SAdrian Hunter 	asm volatile("kandq  %k7,%k6,%k5");
546c4d0b41SAdrian Hunter 	asm volatile("kandb  %k7,%k6,%k5");
556c4d0b41SAdrian Hunter 	asm volatile("kandd  %k7,%k6,%k5");
566c4d0b41SAdrian Hunter 
576c4d0b41SAdrian Hunter 	asm volatile("kandnw  %k7,%k6,%k5");
586c4d0b41SAdrian Hunter 	asm volatile("kandnq  %k7,%k6,%k5");
596c4d0b41SAdrian Hunter 	asm volatile("kandnb  %k7,%k6,%k5");
606c4d0b41SAdrian Hunter 	asm volatile("kandnd  %k7,%k6,%k5");
616c4d0b41SAdrian Hunter 
626c4d0b41SAdrian Hunter 	asm volatile("knotw  %k7,%k6");
636c4d0b41SAdrian Hunter 	asm volatile("knotq  %k7,%k6");
646c4d0b41SAdrian Hunter 	asm volatile("knotb  %k7,%k6");
656c4d0b41SAdrian Hunter 	asm volatile("knotd  %k7,%k6");
666c4d0b41SAdrian Hunter 
676c4d0b41SAdrian Hunter 	asm volatile("korw  %k7,%k6,%k5");
686c4d0b41SAdrian Hunter 	asm volatile("korq  %k7,%k6,%k5");
696c4d0b41SAdrian Hunter 	asm volatile("korb  %k7,%k6,%k5");
706c4d0b41SAdrian Hunter 	asm volatile("kord  %k7,%k6,%k5");
716c4d0b41SAdrian Hunter 
726c4d0b41SAdrian Hunter 	asm volatile("kxnorw  %k7,%k6,%k5");
736c4d0b41SAdrian Hunter 	asm volatile("kxnorq  %k7,%k6,%k5");
746c4d0b41SAdrian Hunter 	asm volatile("kxnorb  %k7,%k6,%k5");
756c4d0b41SAdrian Hunter 	asm volatile("kxnord  %k7,%k6,%k5");
766c4d0b41SAdrian Hunter 
776c4d0b41SAdrian Hunter 	asm volatile("kxorw  %k7,%k6,%k5");
786c4d0b41SAdrian Hunter 	asm volatile("kxorq  %k7,%k6,%k5");
796c4d0b41SAdrian Hunter 	asm volatile("kxorb  %k7,%k6,%k5");
806c4d0b41SAdrian Hunter 	asm volatile("kxord  %k7,%k6,%k5");
816c4d0b41SAdrian Hunter 
826c4d0b41SAdrian Hunter 	asm volatile("kaddw  %k7,%k6,%k5");
836c4d0b41SAdrian Hunter 	asm volatile("kaddq  %k7,%k6,%k5");
846c4d0b41SAdrian Hunter 	asm volatile("kaddb  %k7,%k6,%k5");
856c4d0b41SAdrian Hunter 	asm volatile("kaddd  %k7,%k6,%k5");
866c4d0b41SAdrian Hunter 
876c4d0b41SAdrian Hunter 	asm volatile("kunpckbw %k7,%k6,%k5");
886c4d0b41SAdrian Hunter 	asm volatile("kunpckwd %k7,%k6,%k5");
896c4d0b41SAdrian Hunter 	asm volatile("kunpckdq %k7,%k6,%k5");
906c4d0b41SAdrian Hunter 
916c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k6,%k5");
926c4d0b41SAdrian Hunter 	asm volatile("kmovw  (%rcx),%k5");
936c4d0b41SAdrian Hunter 	asm volatile("kmovw  0x123(%rax,%r14,8),%k5");
946c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,(%rcx)");
956c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,0x123(%rax,%r14,8)");
966c4d0b41SAdrian Hunter 	asm volatile("kmovw  %eax,%k5");
976c4d0b41SAdrian Hunter 	asm volatile("kmovw  %ebp,%k5");
986c4d0b41SAdrian Hunter 	asm volatile("kmovw  %r13d,%k5");
996c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,%eax");
1006c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,%ebp");
1016c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,%r13d");
1026c4d0b41SAdrian Hunter 
1036c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k6,%k5");
1046c4d0b41SAdrian Hunter 	asm volatile("kmovq  (%rcx),%k5");
1056c4d0b41SAdrian Hunter 	asm volatile("kmovq  0x123(%rax,%r14,8),%k5");
1066c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,(%rcx)");
1076c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,0x123(%rax,%r14,8)");
1086c4d0b41SAdrian Hunter 	asm volatile("kmovq  %rax,%k5");
1096c4d0b41SAdrian Hunter 	asm volatile("kmovq  %rbp,%k5");
1106c4d0b41SAdrian Hunter 	asm volatile("kmovq  %r13,%k5");
1116c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,%rax");
1126c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,%rbp");
1136c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,%r13");
1146c4d0b41SAdrian Hunter 
1156c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k6,%k5");
1166c4d0b41SAdrian Hunter 	asm volatile("kmovb  (%rcx),%k5");
1176c4d0b41SAdrian Hunter 	asm volatile("kmovb  0x123(%rax,%r14,8),%k5");
1186c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,(%rcx)");
1196c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,0x123(%rax,%r14,8)");
1206c4d0b41SAdrian Hunter 	asm volatile("kmovb  %eax,%k5");
1216c4d0b41SAdrian Hunter 	asm volatile("kmovb  %ebp,%k5");
1226c4d0b41SAdrian Hunter 	asm volatile("kmovb  %r13d,%k5");
1236c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,%eax");
1246c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,%ebp");
1256c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,%r13d");
1266c4d0b41SAdrian Hunter 
1276c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k6,%k5");
1286c4d0b41SAdrian Hunter 	asm volatile("kmovd  (%rcx),%k5");
1296c4d0b41SAdrian Hunter 	asm volatile("kmovd  0x123(%rax,%r14,8),%k5");
1306c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,(%rcx)");
1316c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,0x123(%rax,%r14,8)");
1326c4d0b41SAdrian Hunter 	asm volatile("kmovd  %eax,%k5");
1336c4d0b41SAdrian Hunter 	asm volatile("kmovd  %ebp,%k5");
1346c4d0b41SAdrian Hunter 	asm volatile("kmovd  %r13d,%k5");
1356c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,%eax");
1366c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,%ebp");
1376c4d0b41SAdrian Hunter 	asm volatile("kmovd %k5,%r13d");
1386c4d0b41SAdrian Hunter 
1396c4d0b41SAdrian Hunter 	asm volatile("kortestw %k6,%k5");
1406c4d0b41SAdrian Hunter 	asm volatile("kortestq %k6,%k5");
1416c4d0b41SAdrian Hunter 	asm volatile("kortestb %k6,%k5");
1426c4d0b41SAdrian Hunter 	asm volatile("kortestd %k6,%k5");
1436c4d0b41SAdrian Hunter 
1446c4d0b41SAdrian Hunter 	asm volatile("ktestw %k6,%k5");
1456c4d0b41SAdrian Hunter 	asm volatile("ktestq %k6,%k5");
1466c4d0b41SAdrian Hunter 	asm volatile("ktestb %k6,%k5");
1476c4d0b41SAdrian Hunter 	asm volatile("ktestd %k6,%k5");
1486c4d0b41SAdrian Hunter 
1496c4d0b41SAdrian Hunter 	asm volatile("kshiftrw $0x12,%k6,%k5");
1506c4d0b41SAdrian Hunter 	asm volatile("kshiftrq $0x5b,%k6,%k5");
1516c4d0b41SAdrian Hunter 	asm volatile("kshiftlw $0x12,%k6,%k5");
1526c4d0b41SAdrian Hunter 	asm volatile("kshiftlq $0x5b,%k6,%k5");
1536c4d0b41SAdrian Hunter 
1546c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 5b */
1556c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2ps %xmm5,%xmm6");
1566c4d0b41SAdrian Hunter 	asm volatile("vcvtqq2ps %zmm29,%ymm6{%k7}");
1576c4d0b41SAdrian Hunter 	asm volatile("vcvtps2dq %xmm5,%xmm6");
1586c4d0b41SAdrian Hunter 	asm volatile("vcvttps2dq %xmm5,%xmm6");
1596c4d0b41SAdrian Hunter 
1606c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 6f */
1616c4d0b41SAdrian Hunter 
1626c4d0b41SAdrian Hunter 	asm volatile("movq   %mm0,%mm4");
1636c4d0b41SAdrian Hunter 	asm volatile("vmovdqa %ymm4,%ymm6");
1646c4d0b41SAdrian Hunter 	asm volatile("vmovdqa32 %zmm25,%zmm26");
1656c4d0b41SAdrian Hunter 	asm volatile("vmovdqa64 %zmm25,%zmm26");
1666c4d0b41SAdrian Hunter 	asm volatile("vmovdqu %ymm4,%ymm6");
1676c4d0b41SAdrian Hunter 	asm volatile("vmovdqu32 %zmm29,%zmm30");
1686c4d0b41SAdrian Hunter 	asm volatile("vmovdqu64 %zmm25,%zmm26");
1696c4d0b41SAdrian Hunter 	asm volatile("vmovdqu8 %zmm29,%zmm30");
1706c4d0b41SAdrian Hunter 	asm volatile("vmovdqu16 %zmm25,%zmm26");
1716c4d0b41SAdrian Hunter 
1726c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 78 */
1736c4d0b41SAdrian Hunter 
1746c4d0b41SAdrian Hunter 	asm volatile("vmread %rax,%rbx");
1756c4d0b41SAdrian Hunter 	asm volatile("vcvttps2udq %zmm25,%zmm26");
1766c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2udq %zmm29,%ymm6{%k7}");
1776c4d0b41SAdrian Hunter 	asm volatile("vcvttsd2usi %xmm6,%rax");
1786c4d0b41SAdrian Hunter 	asm volatile("vcvttss2usi %xmm6,%rax");
1796c4d0b41SAdrian Hunter 	asm volatile("vcvttps2uqq %ymm5,%zmm26{%k7}");
1806c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2uqq %zmm29,%zmm30");
1816c4d0b41SAdrian Hunter 
1826c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 79 */
1836c4d0b41SAdrian Hunter 
1846c4d0b41SAdrian Hunter 	asm volatile("vmwrite %rax,%rbx");
1856c4d0b41SAdrian Hunter 	asm volatile("vcvtps2udq %zmm25,%zmm26");
1866c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2udq %zmm29,%ymm6{%k7}");
1876c4d0b41SAdrian Hunter 	asm volatile("vcvtsd2usi %xmm6,%rax");
1886c4d0b41SAdrian Hunter 	asm volatile("vcvtss2usi %xmm6,%rax");
1896c4d0b41SAdrian Hunter 	asm volatile("vcvtps2uqq %ymm5,%zmm26{%k7}");
1906c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2uqq %zmm29,%zmm30");
1916c4d0b41SAdrian Hunter 
1926c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7a */
1936c4d0b41SAdrian Hunter 
1946c4d0b41SAdrian Hunter 	asm volatile("vcvtudq2pd %ymm5,%zmm29{%k7}");
1956c4d0b41SAdrian Hunter 	asm volatile("vcvtuqq2pd %zmm25,%zmm26");
1966c4d0b41SAdrian Hunter 	asm volatile("vcvtudq2ps %zmm29,%zmm30");
1976c4d0b41SAdrian Hunter 	asm volatile("vcvtuqq2ps %zmm25,%ymm26{%k7}");
1986c4d0b41SAdrian Hunter 	asm volatile("vcvttps2qq %ymm25,%zmm26{%k7}");
1996c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2qq %zmm29,%zmm30");
2006c4d0b41SAdrian Hunter 
2016c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7b */
2026c4d0b41SAdrian Hunter 
2036c4d0b41SAdrian Hunter 	asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");
2046c4d0b41SAdrian Hunter 	asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");
2056c4d0b41SAdrian Hunter 	asm volatile("vcvtps2qq %ymm5,%zmm26{%k7}");
2066c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2qq %zmm29,%zmm30");
2076c4d0b41SAdrian Hunter 
2086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7f */
2096c4d0b41SAdrian Hunter 
2106c4d0b41SAdrian Hunter 	asm volatile("movq.s  %mm0,%mm4");
2116c4d0b41SAdrian Hunter 	asm volatile("vmovdqa %ymm8,%ymm6");
2126c4d0b41SAdrian Hunter 	asm volatile("vmovdqa32.s %zmm25,%zmm26");
2136c4d0b41SAdrian Hunter 	asm volatile("vmovdqa64.s %zmm25,%zmm26");
2146c4d0b41SAdrian Hunter 	asm volatile("vmovdqu %ymm8,%ymm6");
2156c4d0b41SAdrian Hunter 	asm volatile("vmovdqu32.s %zmm25,%zmm26");
2166c4d0b41SAdrian Hunter 	asm volatile("vmovdqu64.s %zmm25,%zmm26");
2176c4d0b41SAdrian Hunter 	asm volatile("vmovdqu8.s %zmm30,(%rcx)");
2186c4d0b41SAdrian Hunter 	asm volatile("vmovdqu16.s %zmm25,%zmm26");
2196c4d0b41SAdrian Hunter 
2206c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f db */
2216c4d0b41SAdrian Hunter 
2226c4d0b41SAdrian Hunter 	asm volatile("pand  %mm1,%mm2");
2236c4d0b41SAdrian Hunter 	asm volatile("pand  %xmm1,%xmm2");
2246c4d0b41SAdrian Hunter 	asm volatile("vpand  %ymm4,%ymm6,%ymm2");
2256c4d0b41SAdrian Hunter 	asm volatile("vpandd %zmm24,%zmm25,%zmm26");
2266c4d0b41SAdrian Hunter 	asm volatile("vpandq %zmm24,%zmm25,%zmm26");
2276c4d0b41SAdrian Hunter 
2286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f df */
2296c4d0b41SAdrian Hunter 
2306c4d0b41SAdrian Hunter 	asm volatile("pandn  %mm1,%mm2");
2316c4d0b41SAdrian Hunter 	asm volatile("pandn  %xmm1,%xmm2");
2326c4d0b41SAdrian Hunter 	asm volatile("vpandn %ymm4,%ymm6,%ymm2");
2336c4d0b41SAdrian Hunter 	asm volatile("vpandnd %zmm24,%zmm25,%zmm26");
2346c4d0b41SAdrian Hunter 	asm volatile("vpandnq %zmm24,%zmm25,%zmm26");
2356c4d0b41SAdrian Hunter 
2366c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f e6 */
2376c4d0b41SAdrian Hunter 
2386c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2dq %xmm1,%xmm2");
2396c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2pd %xmm5,%xmm6");
2406c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2pd %ymm5,%zmm26{%k7}");
2416c4d0b41SAdrian Hunter 	asm volatile("vcvtqq2pd %zmm25,%zmm26");
2426c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2dq %xmm1,%xmm2");
2436c4d0b41SAdrian Hunter 
2446c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f eb */
2456c4d0b41SAdrian Hunter 
2466c4d0b41SAdrian Hunter 	asm volatile("por   %mm4,%mm6");
2476c4d0b41SAdrian Hunter 	asm volatile("vpor   %ymm4,%ymm6,%ymm2");
2486c4d0b41SAdrian Hunter 	asm volatile("vpord  %zmm24,%zmm25,%zmm26");
2496c4d0b41SAdrian Hunter 	asm volatile("vporq  %zmm24,%zmm25,%zmm26");
2506c4d0b41SAdrian Hunter 
2516c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f ef */
2526c4d0b41SAdrian Hunter 
2536c4d0b41SAdrian Hunter 	asm volatile("pxor   %mm4,%mm6");
2546c4d0b41SAdrian Hunter 	asm volatile("vpxor  %ymm4,%ymm6,%ymm2");
2556c4d0b41SAdrian Hunter 	asm volatile("vpxord %zmm24,%zmm25,%zmm26");
2566c4d0b41SAdrian Hunter 	asm volatile("vpxorq %zmm24,%zmm25,%zmm26");
2576c4d0b41SAdrian Hunter 
2586c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 10 */
2596c4d0b41SAdrian Hunter 
2606c4d0b41SAdrian Hunter 	asm volatile("pblendvb %xmm1,%xmm0");
2616c4d0b41SAdrian Hunter 	asm volatile("vpsrlvw %zmm27,%zmm28,%zmm29");
2626c4d0b41SAdrian Hunter 	asm volatile("vpmovuswb %zmm28,%ymm6{%k7}");
2636c4d0b41SAdrian Hunter 
2646c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 11 */
2656c4d0b41SAdrian Hunter 
2666c4d0b41SAdrian Hunter 	asm volatile("vpmovusdb %zmm28,%xmm6{%k7}");
2676c4d0b41SAdrian Hunter 	asm volatile("vpsravw %zmm27,%zmm28,%zmm29");
2686c4d0b41SAdrian Hunter 
2696c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 12 */
2706c4d0b41SAdrian Hunter 
2716c4d0b41SAdrian Hunter 	asm volatile("vpmovusqb %zmm27,%xmm6{%k7}");
2726c4d0b41SAdrian Hunter 	asm volatile("vpsllvw %zmm27,%zmm28,%zmm29");
2736c4d0b41SAdrian Hunter 
2746c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 13 */
2756c4d0b41SAdrian Hunter 
2766c4d0b41SAdrian Hunter 	asm volatile("vcvtph2ps %xmm3,%ymm5");
2776c4d0b41SAdrian Hunter 	asm volatile("vcvtph2ps %ymm5,%zmm27{%k7}");
2786c4d0b41SAdrian Hunter 	asm volatile("vpmovusdw %zmm27,%ymm6{%k7}");
2796c4d0b41SAdrian Hunter 
2806c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 14 */
2816c4d0b41SAdrian Hunter 
2826c4d0b41SAdrian Hunter 	asm volatile("blendvps %xmm1,%xmm0");
2836c4d0b41SAdrian Hunter 	asm volatile("vpmovusqw %zmm27,%xmm6{%k7}");
2846c4d0b41SAdrian Hunter 	asm volatile("vprorvd %zmm27,%zmm28,%zmm29");
2856c4d0b41SAdrian Hunter 	asm volatile("vprorvq %zmm27,%zmm28,%zmm29");
2866c4d0b41SAdrian Hunter 
2876c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 15 */
2886c4d0b41SAdrian Hunter 
2896c4d0b41SAdrian Hunter 	asm volatile("blendvpd %xmm1,%xmm0");
2906c4d0b41SAdrian Hunter 	asm volatile("vpmovusqd %zmm27,%ymm6{%k7}");
2916c4d0b41SAdrian Hunter 	asm volatile("vprolvd %zmm27,%zmm28,%zmm29");
2926c4d0b41SAdrian Hunter 	asm volatile("vprolvq %zmm27,%zmm28,%zmm29");
2936c4d0b41SAdrian Hunter 
2946c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 16 */
2956c4d0b41SAdrian Hunter 
2966c4d0b41SAdrian Hunter 	asm volatile("vpermps %ymm4,%ymm6,%ymm2");
2976c4d0b41SAdrian Hunter 	asm volatile("vpermps %ymm24,%ymm26,%ymm22{%k7}");
2986c4d0b41SAdrian Hunter 	asm volatile("vpermpd %ymm24,%ymm26,%ymm22{%k7}");
2996c4d0b41SAdrian Hunter 
3006c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 19 */
3016c4d0b41SAdrian Hunter 
3026c4d0b41SAdrian Hunter 	asm volatile("vbroadcastsd %xmm4,%ymm6");
3036c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x2 %xmm27,%zmm26");
3046c4d0b41SAdrian Hunter 
3056c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1a */
3066c4d0b41SAdrian Hunter 
3076c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf128 (%rcx),%ymm4");
3086c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x4 (%rcx),%zmm26");
3096c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf64x2 (%rcx),%zmm26");
3106c4d0b41SAdrian Hunter 
3116c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1b */
3126c4d0b41SAdrian Hunter 
3136c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x8 (%rcx),%zmm27");
3146c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf64x4 (%rcx),%zmm26");
3156c4d0b41SAdrian Hunter 
3166c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1f */
3176c4d0b41SAdrian Hunter 
3186c4d0b41SAdrian Hunter 	asm volatile("vpabsq %zmm27,%zmm28");
3196c4d0b41SAdrian Hunter 
3206c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 20 */
3216c4d0b41SAdrian Hunter 
3226c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbw %xmm4,%xmm5");
3236c4d0b41SAdrian Hunter 	asm volatile("vpmovswb %zmm27,%ymm6{%k7}");
3246c4d0b41SAdrian Hunter 
3256c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 21 */
3266c4d0b41SAdrian Hunter 
3276c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbd %xmm4,%ymm6");
3286c4d0b41SAdrian Hunter 	asm volatile("vpmovsdb %zmm27,%xmm6{%k7}");
3296c4d0b41SAdrian Hunter 
3306c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 22 */
3316c4d0b41SAdrian Hunter 
3326c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbq %xmm4,%ymm4");
3336c4d0b41SAdrian Hunter 	asm volatile("vpmovsqb %zmm27,%xmm6{%k7}");
3346c4d0b41SAdrian Hunter 
3356c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 23 */
3366c4d0b41SAdrian Hunter 
3376c4d0b41SAdrian Hunter 	asm volatile("vpmovsxwd %xmm4,%ymm4");
3386c4d0b41SAdrian Hunter 	asm volatile("vpmovsdw %zmm27,%ymm6{%k7}");
3396c4d0b41SAdrian Hunter 
3406c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 24 */
3416c4d0b41SAdrian Hunter 
3426c4d0b41SAdrian Hunter 	asm volatile("vpmovsxwq %xmm4,%ymm6");
3436c4d0b41SAdrian Hunter 	asm volatile("vpmovsqw %zmm27,%xmm6{%k7}");
3446c4d0b41SAdrian Hunter 
3456c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 25 */
3466c4d0b41SAdrian Hunter 
3476c4d0b41SAdrian Hunter 	asm volatile("vpmovsxdq %xmm4,%ymm4");
3486c4d0b41SAdrian Hunter 	asm volatile("vpmovsqd %zmm27,%ymm6{%k7}");
3496c4d0b41SAdrian Hunter 
3506c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 26 */
3516c4d0b41SAdrian Hunter 
3526c4d0b41SAdrian Hunter 	asm volatile("vptestmb %zmm27,%zmm28,%k5");
3536c4d0b41SAdrian Hunter 	asm volatile("vptestmw %zmm27,%zmm28,%k5");
3546c4d0b41SAdrian Hunter 	asm volatile("vptestnmb %zmm26,%zmm27,%k5");
3556c4d0b41SAdrian Hunter 	asm volatile("vptestnmw %zmm26,%zmm27,%k5");
3566c4d0b41SAdrian Hunter 
3576c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 27 */
3586c4d0b41SAdrian Hunter 
3596c4d0b41SAdrian Hunter 	asm volatile("vptestmd %zmm27,%zmm28,%k5");
3606c4d0b41SAdrian Hunter 	asm volatile("vptestmq %zmm27,%zmm28,%k5");
3616c4d0b41SAdrian Hunter 	asm volatile("vptestnmd %zmm26,%zmm27,%k5");
3626c4d0b41SAdrian Hunter 	asm volatile("vptestnmq %zmm26,%zmm27,%k5");
3636c4d0b41SAdrian Hunter 
3646c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 28 */
3656c4d0b41SAdrian Hunter 
3666c4d0b41SAdrian Hunter 	asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");
3676c4d0b41SAdrian Hunter 	asm volatile("vpmovm2b %k5,%zmm28");
3686c4d0b41SAdrian Hunter 	asm volatile("vpmovm2w %k5,%zmm28");
3696c4d0b41SAdrian Hunter 
3706c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 29 */
3716c4d0b41SAdrian Hunter 
3726c4d0b41SAdrian Hunter 	asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");
3736c4d0b41SAdrian Hunter 	asm volatile("vpmovb2m %zmm28,%k5");
3746c4d0b41SAdrian Hunter 	asm volatile("vpmovw2m %zmm28,%k5");
3756c4d0b41SAdrian Hunter 
3766c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2a */
3776c4d0b41SAdrian Hunter 
3786c4d0b41SAdrian Hunter 	asm volatile("vmovntdqa (%rcx),%ymm4");
3796c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastmb2q %k6,%zmm30");
3806c4d0b41SAdrian Hunter 
3816c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2c */
3826c4d0b41SAdrian Hunter 
3836c4d0b41SAdrian Hunter 	asm volatile("vmaskmovps (%rcx),%ymm4,%ymm6");
3846c4d0b41SAdrian Hunter 	asm volatile("vscalefps %zmm24,%zmm25,%zmm26");
3856c4d0b41SAdrian Hunter 	asm volatile("vscalefpd %zmm24,%zmm25,%zmm26");
3866c4d0b41SAdrian Hunter 
3876c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2d */
3886c4d0b41SAdrian Hunter 
3896c4d0b41SAdrian Hunter 	asm volatile("vmaskmovpd (%rcx),%ymm4,%ymm6");
3906c4d0b41SAdrian Hunter 	asm volatile("vscalefss %xmm24,%xmm25,%xmm26{%k7}");
3916c4d0b41SAdrian Hunter 	asm volatile("vscalefsd %xmm24,%xmm25,%xmm26{%k7}");
3926c4d0b41SAdrian Hunter 
3936c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 30 */
3946c4d0b41SAdrian Hunter 
3956c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbw %xmm4,%ymm4");
3966c4d0b41SAdrian Hunter 	asm volatile("vpmovwb %zmm27,%ymm6{%k7}");
3976c4d0b41SAdrian Hunter 
3986c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 31 */
3996c4d0b41SAdrian Hunter 
4006c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbd %xmm4,%ymm6");
4016c4d0b41SAdrian Hunter 	asm volatile("vpmovdb %zmm27,%xmm6{%k7}");
4026c4d0b41SAdrian Hunter 
4036c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 32 */
4046c4d0b41SAdrian Hunter 
4056c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbq %xmm4,%ymm4");
4066c4d0b41SAdrian Hunter 	asm volatile("vpmovqb %zmm27,%xmm6{%k7}");
4076c4d0b41SAdrian Hunter 
4086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 33 */
4096c4d0b41SAdrian Hunter 
4106c4d0b41SAdrian Hunter 	asm volatile("vpmovzxwd %xmm4,%ymm4");
4116c4d0b41SAdrian Hunter 	asm volatile("vpmovdw %zmm27,%ymm6{%k7}");
4126c4d0b41SAdrian Hunter 
4136c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 34 */
4146c4d0b41SAdrian Hunter 
4156c4d0b41SAdrian Hunter 	asm volatile("vpmovzxwq %xmm4,%ymm6");
4166c4d0b41SAdrian Hunter 	asm volatile("vpmovqw %zmm27,%xmm6{%k7}");
4176c4d0b41SAdrian Hunter 
4186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 35 */
4196c4d0b41SAdrian Hunter 
4206c4d0b41SAdrian Hunter 	asm volatile("vpmovzxdq %xmm4,%ymm4");
4216c4d0b41SAdrian Hunter 	asm volatile("vpmovqd %zmm27,%ymm6{%k7}");
4226c4d0b41SAdrian Hunter 
4236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 38 */
4246c4d0b41SAdrian Hunter 
4256c4d0b41SAdrian Hunter 	asm volatile("vpermd %ymm4,%ymm6,%ymm2");
4266c4d0b41SAdrian Hunter 	asm volatile("vpermd %ymm24,%ymm26,%ymm22{%k7}");
4276c4d0b41SAdrian Hunter 	asm volatile("vpermq %ymm24,%ymm26,%ymm22{%k7}");
4286c4d0b41SAdrian Hunter 
4296c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 38 */
4306c4d0b41SAdrian Hunter 
4316c4d0b41SAdrian Hunter 	asm volatile("vpminsb %ymm4,%ymm6,%ymm2");
4326c4d0b41SAdrian Hunter 	asm volatile("vpmovm2d %k5,%zmm28");
4336c4d0b41SAdrian Hunter 	asm volatile("vpmovm2q %k5,%zmm28");
4346c4d0b41SAdrian Hunter 
4356c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 39 */
4366c4d0b41SAdrian Hunter 
4376c4d0b41SAdrian Hunter 	asm volatile("vpminsd %xmm1,%xmm2,%xmm3");
4386c4d0b41SAdrian Hunter 	asm volatile("vpminsd %zmm24,%zmm25,%zmm26");
4396c4d0b41SAdrian Hunter 	asm volatile("vpminsq %zmm24,%zmm25,%zmm26");
4406c4d0b41SAdrian Hunter 	asm volatile("vpmovd2m %zmm28,%k5");
4416c4d0b41SAdrian Hunter 	asm volatile("vpmovq2m %zmm28,%k5");
4426c4d0b41SAdrian Hunter 
4436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3a */
4446c4d0b41SAdrian Hunter 
4456c4d0b41SAdrian Hunter 	asm volatile("vpminuw %ymm4,%ymm6,%ymm2");
4466c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastmw2d %k6,%zmm28");
4476c4d0b41SAdrian Hunter 
4486c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3b */
4496c4d0b41SAdrian Hunter 
4506c4d0b41SAdrian Hunter 	asm volatile("vpminud %ymm4,%ymm6,%ymm2");
4516c4d0b41SAdrian Hunter 	asm volatile("vpminud %zmm24,%zmm25,%zmm26");
4526c4d0b41SAdrian Hunter 	asm volatile("vpminuq %zmm24,%zmm25,%zmm26");
4536c4d0b41SAdrian Hunter 
4546c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3d */
4556c4d0b41SAdrian Hunter 
4566c4d0b41SAdrian Hunter 	asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");
4576c4d0b41SAdrian Hunter 	asm volatile("vpmaxsd %zmm24,%zmm25,%zmm26");
4586c4d0b41SAdrian Hunter 	asm volatile("vpmaxsq %zmm24,%zmm25,%zmm26");
4596c4d0b41SAdrian Hunter 
4606c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3f */
4616c4d0b41SAdrian Hunter 
4626c4d0b41SAdrian Hunter 	asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");
4636c4d0b41SAdrian Hunter 	asm volatile("vpmaxud %zmm24,%zmm25,%zmm26");
4646c4d0b41SAdrian Hunter 	asm volatile("vpmaxuq %zmm24,%zmm25,%zmm26");
4656c4d0b41SAdrian Hunter 
4666c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 42 */
4676c4d0b41SAdrian Hunter 
4686c4d0b41SAdrian Hunter 	asm volatile("vpmulld %ymm4,%ymm6,%ymm2");
4696c4d0b41SAdrian Hunter 	asm volatile("vpmulld %zmm24,%zmm25,%zmm26");
4706c4d0b41SAdrian Hunter 	asm volatile("vpmullq %zmm24,%zmm25,%zmm26");
4716c4d0b41SAdrian Hunter 
4726c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 42 */
4736c4d0b41SAdrian Hunter 
4746c4d0b41SAdrian Hunter 	asm volatile("vgetexpps %zmm25,%zmm26");
4756c4d0b41SAdrian Hunter 	asm volatile("vgetexppd %zmm27,%zmm28");
4766c4d0b41SAdrian Hunter 
4776c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 43 */
4786c4d0b41SAdrian Hunter 
4796c4d0b41SAdrian Hunter 	asm volatile("vgetexpss %xmm24,%xmm25,%xmm26{%k7}");
4806c4d0b41SAdrian Hunter 	asm volatile("vgetexpsd %xmm28,%xmm29,%xmm30{%k7}");
4816c4d0b41SAdrian Hunter 
4826c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 44 */
4836c4d0b41SAdrian Hunter 
4846c4d0b41SAdrian Hunter 	asm volatile("vplzcntd %zmm27,%zmm28");
4856c4d0b41SAdrian Hunter 	asm volatile("vplzcntq %zmm27,%zmm28");
4866c4d0b41SAdrian Hunter 
4876c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 46 */
4886c4d0b41SAdrian Hunter 
4896c4d0b41SAdrian Hunter 	asm volatile("vpsravd %ymm4,%ymm6,%ymm2");
4906c4d0b41SAdrian Hunter 	asm volatile("vpsravd %zmm24,%zmm25,%zmm26");
4916c4d0b41SAdrian Hunter 	asm volatile("vpsravq %zmm24,%zmm25,%zmm26");
4926c4d0b41SAdrian Hunter 
4936c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4c */
4946c4d0b41SAdrian Hunter 
4956c4d0b41SAdrian Hunter 	asm volatile("vrcp14ps %zmm25,%zmm26");
4966c4d0b41SAdrian Hunter 	asm volatile("vrcp14pd %zmm27,%zmm28");
4976c4d0b41SAdrian Hunter 
4986c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4d */
4996c4d0b41SAdrian Hunter 
5006c4d0b41SAdrian Hunter 	asm volatile("vrcp14ss %xmm24,%xmm25,%xmm26{%k7}");
5016c4d0b41SAdrian Hunter 	asm volatile("vrcp14sd %xmm24,%xmm25,%xmm26{%k7}");
5026c4d0b41SAdrian Hunter 
5036c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4e */
5046c4d0b41SAdrian Hunter 
5056c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14ps %zmm25,%zmm26");
5066c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14pd %zmm27,%zmm28");
5076c4d0b41SAdrian Hunter 
5086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4f */
5096c4d0b41SAdrian Hunter 
5106c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14ss %xmm24,%xmm25,%xmm26{%k7}");
5116c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14sd %xmm24,%xmm25,%xmm26{%k7}");
5126c4d0b41SAdrian Hunter 
5139adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 50 */
5149adab034SAdrian Hunter 
5159adab034SAdrian Hunter 	asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");
5169adab034SAdrian Hunter 	asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");
5179adab034SAdrian Hunter 	asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");
5189adab034SAdrian Hunter 	asm volatile("vpdpbusd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
5199adab034SAdrian Hunter 	asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
5209adab034SAdrian Hunter 
5219adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 51 */
5229adab034SAdrian Hunter 
5239adab034SAdrian Hunter 	asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");
5249adab034SAdrian Hunter 	asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");
5259adab034SAdrian Hunter 	asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");
5269adab034SAdrian Hunter 	asm volatile("vpdpbusds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
5279adab034SAdrian Hunter 	asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
5289adab034SAdrian Hunter 
5299adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 52 */
5309adab034SAdrian Hunter 
5319adab034SAdrian Hunter 	asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");
5329adab034SAdrian Hunter 	asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");
5339adab034SAdrian Hunter 	asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");
5349adab034SAdrian Hunter 	asm volatile("vdpbf16ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
5359adab034SAdrian Hunter 	asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
5369adab034SAdrian Hunter 
5379adab034SAdrian Hunter 	asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");
5389adab034SAdrian Hunter 	asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");
5399adab034SAdrian Hunter 	asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");
5409adab034SAdrian Hunter 	asm volatile("vpdpwssd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
5419adab034SAdrian Hunter 	asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
5429adab034SAdrian Hunter 
5439adab034SAdrian Hunter 	asm volatile("vp4dpwssd (%rax), %zmm0, %zmm4");
5449adab034SAdrian Hunter 	asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");
5459adab034SAdrian Hunter 	asm volatile("vp4dpwssd 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
5469adab034SAdrian Hunter 	asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
5479adab034SAdrian Hunter 
5489adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 53 */
5499adab034SAdrian Hunter 
5509adab034SAdrian Hunter 	asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");
5519adab034SAdrian Hunter 	asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");
5529adab034SAdrian Hunter 	asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");
5539adab034SAdrian Hunter 	asm volatile("vpdpwssds 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
5549adab034SAdrian Hunter 	asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
5559adab034SAdrian Hunter 
5569adab034SAdrian Hunter 	asm volatile("vp4dpwssds (%rax), %zmm0, %zmm4");
5579adab034SAdrian Hunter 	asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");
5589adab034SAdrian Hunter 	asm volatile("vp4dpwssds 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
5599adab034SAdrian Hunter 	asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
5609adab034SAdrian Hunter 
5619adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 54 */
5629adab034SAdrian Hunter 
5639adab034SAdrian Hunter 	asm volatile("vpopcntb %xmm1, %xmm2");
5649adab034SAdrian Hunter 	asm volatile("vpopcntb %ymm1, %ymm2");
5659adab034SAdrian Hunter 	asm volatile("vpopcntb %zmm1, %zmm2");
5669adab034SAdrian Hunter 	asm volatile("vpopcntb 0x12345678(%rax,%rcx,8),%zmm2");
5679adab034SAdrian Hunter 	asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");
5689adab034SAdrian Hunter 
5699adab034SAdrian Hunter 	asm volatile("vpopcntw %xmm1, %xmm2");
5709adab034SAdrian Hunter 	asm volatile("vpopcntw %ymm1, %ymm2");
5719adab034SAdrian Hunter 	asm volatile("vpopcntw %zmm1, %zmm2");
5729adab034SAdrian Hunter 	asm volatile("vpopcntw 0x12345678(%rax,%rcx,8),%zmm2");
5739adab034SAdrian Hunter 	asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");
5749adab034SAdrian Hunter 
5759adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 55 */
5769adab034SAdrian Hunter 
5779adab034SAdrian Hunter 	asm volatile("vpopcntd %xmm1, %xmm2");
5789adab034SAdrian Hunter 	asm volatile("vpopcntd %ymm1, %ymm2");
5799adab034SAdrian Hunter 	asm volatile("vpopcntd %zmm1, %zmm2");
5809adab034SAdrian Hunter 	asm volatile("vpopcntd 0x12345678(%rax,%rcx,8),%zmm2");
5819adab034SAdrian Hunter 	asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");
5829adab034SAdrian Hunter 
5839adab034SAdrian Hunter 	asm volatile("vpopcntq %xmm1, %xmm2");
5849adab034SAdrian Hunter 	asm volatile("vpopcntq %ymm1, %ymm2");
5859adab034SAdrian Hunter 	asm volatile("vpopcntq %zmm1, %zmm2");
5869adab034SAdrian Hunter 	asm volatile("vpopcntq 0x12345678(%rax,%rcx,8),%zmm2");
5879adab034SAdrian Hunter 	asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");
5889adab034SAdrian Hunter 
5896c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 59 */
5906c4d0b41SAdrian Hunter 
5916c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastq %xmm4,%xmm6");
5926c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x2 %xmm27,%zmm26");
5936c4d0b41SAdrian Hunter 
5946c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 5a */
5956c4d0b41SAdrian Hunter 
5966c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti128 (%rcx),%ymm4");
5976c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x4 (%rcx),%zmm26");
5986c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti64x2 (%rcx),%zmm26");
5996c4d0b41SAdrian Hunter 
6006c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 5b */
6016c4d0b41SAdrian Hunter 
6026c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x8 (%rcx),%zmm28");
6036c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti64x4 (%rcx),%zmm26");
6046c4d0b41SAdrian Hunter 
6059adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 62 */
6069adab034SAdrian Hunter 
6079adab034SAdrian Hunter 	asm volatile("vpexpandb %xmm1, %xmm2");
6089adab034SAdrian Hunter 	asm volatile("vpexpandb %ymm1, %ymm2");
6099adab034SAdrian Hunter 	asm volatile("vpexpandb %zmm1, %zmm2");
6109adab034SAdrian Hunter 	asm volatile("vpexpandb 0x12345678(%rax,%rcx,8),%zmm2");
6119adab034SAdrian Hunter 	asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");
6129adab034SAdrian Hunter 
6139adab034SAdrian Hunter 	asm volatile("vpexpandw %xmm1, %xmm2");
6149adab034SAdrian Hunter 	asm volatile("vpexpandw %ymm1, %ymm2");
6159adab034SAdrian Hunter 	asm volatile("vpexpandw %zmm1, %zmm2");
6169adab034SAdrian Hunter 	asm volatile("vpexpandw 0x12345678(%rax,%rcx,8),%zmm2");
6179adab034SAdrian Hunter 	asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");
6189adab034SAdrian Hunter 
6199adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 63 */
6209adab034SAdrian Hunter 
6219adab034SAdrian Hunter 	asm volatile("vpcompressb %xmm1, %xmm2");
6229adab034SAdrian Hunter 	asm volatile("vpcompressb %ymm1, %ymm2");
6239adab034SAdrian Hunter 	asm volatile("vpcompressb %zmm1, %zmm2");
6249adab034SAdrian Hunter 	asm volatile("vpcompressb %zmm2,0x12345678(%rax,%rcx,8)");
6259adab034SAdrian Hunter 	asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");
6269adab034SAdrian Hunter 
6279adab034SAdrian Hunter 	asm volatile("vpcompressw %xmm1, %xmm2");
6289adab034SAdrian Hunter 	asm volatile("vpcompressw %ymm1, %ymm2");
6299adab034SAdrian Hunter 	asm volatile("vpcompressw %zmm1, %zmm2");
6309adab034SAdrian Hunter 	asm volatile("vpcompressw %zmm2,0x12345678(%rax,%rcx,8)");
6319adab034SAdrian Hunter 	asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");
6329adab034SAdrian Hunter 
6336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 64 */
6346c4d0b41SAdrian Hunter 
6356c4d0b41SAdrian Hunter 	asm volatile("vpblendmd %zmm26,%zmm27,%zmm28");
6366c4d0b41SAdrian Hunter 	asm volatile("vpblendmq %zmm26,%zmm27,%zmm28");
6376c4d0b41SAdrian Hunter 
6386c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 65 */
6396c4d0b41SAdrian Hunter 
6406c4d0b41SAdrian Hunter 	asm volatile("vblendmps %zmm24,%zmm25,%zmm26");
6416c4d0b41SAdrian Hunter 	asm volatile("vblendmpd %zmm26,%zmm27,%zmm28");
6426c4d0b41SAdrian Hunter 
6436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 66 */
6446c4d0b41SAdrian Hunter 
6456c4d0b41SAdrian Hunter 	asm volatile("vpblendmb %zmm26,%zmm27,%zmm28");
6466c4d0b41SAdrian Hunter 	asm volatile("vpblendmw %zmm26,%zmm27,%zmm28");
6476c4d0b41SAdrian Hunter 
6489adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 68 */
6499adab034SAdrian Hunter 
6509adab034SAdrian Hunter 	asm volatile("vp2intersectd %xmm1, %xmm2, %k3");
6519adab034SAdrian Hunter 	asm volatile("vp2intersectd %ymm1, %ymm2, %k3");
6529adab034SAdrian Hunter 	asm volatile("vp2intersectd %zmm1, %zmm2, %k3");
6539adab034SAdrian Hunter 	asm volatile("vp2intersectd 0x12345678(%rax,%rcx,8),%zmm2,%k3");
6549adab034SAdrian Hunter 	asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");
6559adab034SAdrian Hunter 
6569adab034SAdrian Hunter 	asm volatile("vp2intersectq %xmm1, %xmm2, %k3");
6579adab034SAdrian Hunter 	asm volatile("vp2intersectq %ymm1, %ymm2, %k3");
6589adab034SAdrian Hunter 	asm volatile("vp2intersectq %zmm1, %zmm2, %k3");
6599adab034SAdrian Hunter 	asm volatile("vp2intersectq 0x12345678(%rax,%rcx,8),%zmm2,%k3");
6609adab034SAdrian Hunter 	asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");
6619adab034SAdrian Hunter 
6629adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 70 */
6639adab034SAdrian Hunter 
6649adab034SAdrian Hunter 	asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");
6659adab034SAdrian Hunter 	asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");
6669adab034SAdrian Hunter 	asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");
6679adab034SAdrian Hunter 	asm volatile("vpshldvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
6689adab034SAdrian Hunter 	asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
6699adab034SAdrian Hunter 
6709adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 71 */
6719adab034SAdrian Hunter 
6729adab034SAdrian Hunter 	asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");
6739adab034SAdrian Hunter 	asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");
6749adab034SAdrian Hunter 	asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");
6759adab034SAdrian Hunter 	asm volatile("vpshldvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
6769adab034SAdrian Hunter 	asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
6779adab034SAdrian Hunter 
6789adab034SAdrian Hunter 	asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");
6799adab034SAdrian Hunter 	asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");
6809adab034SAdrian Hunter 	asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");
6819adab034SAdrian Hunter 	asm volatile("vpshldvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
6829adab034SAdrian Hunter 	asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
6839adab034SAdrian Hunter 
6849adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 72 */
6859adab034SAdrian Hunter 
6869adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");
6879adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");
6889adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");
6899adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
6909adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
6919adab034SAdrian Hunter 
6929adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %xmm1, %xmm2");
6939adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %ymm1, %xmm2");
6949adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %zmm1, %ymm2");
6959adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 0x12345678(%rax,%rcx,8),%ymm2");
6969adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");
6979adab034SAdrian Hunter 
6989adab034SAdrian Hunter 	asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");
6999adab034SAdrian Hunter 	asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");
7009adab034SAdrian Hunter 	asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");
7019adab034SAdrian Hunter 	asm volatile("vpshrdvw 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
7029adab034SAdrian Hunter 	asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
7039adab034SAdrian Hunter 
7049adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 73 */
7059adab034SAdrian Hunter 
7069adab034SAdrian Hunter 	asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");
7079adab034SAdrian Hunter 	asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");
7089adab034SAdrian Hunter 	asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");
7099adab034SAdrian Hunter 	asm volatile("vpshrdvd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
7109adab034SAdrian Hunter 	asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
7119adab034SAdrian Hunter 
7129adab034SAdrian Hunter 	asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");
7139adab034SAdrian Hunter 	asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");
7149adab034SAdrian Hunter 	asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");
7159adab034SAdrian Hunter 	asm volatile("vpshrdvq 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
7169adab034SAdrian Hunter 	asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
7179adab034SAdrian Hunter 
7186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 75 */
7196c4d0b41SAdrian Hunter 
7206c4d0b41SAdrian Hunter 	asm volatile("vpermi2b %zmm24,%zmm25,%zmm26");
7216c4d0b41SAdrian Hunter 	asm volatile("vpermi2w %zmm26,%zmm27,%zmm28");
7226c4d0b41SAdrian Hunter 
7236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 76 */
7246c4d0b41SAdrian Hunter 
7256c4d0b41SAdrian Hunter 	asm volatile("vpermi2d %zmm26,%zmm27,%zmm28");
7266c4d0b41SAdrian Hunter 	asm volatile("vpermi2q %zmm26,%zmm27,%zmm28");
7276c4d0b41SAdrian Hunter 
7286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 77 */
7296c4d0b41SAdrian Hunter 
7306c4d0b41SAdrian Hunter 	asm volatile("vpermi2ps %zmm26,%zmm27,%zmm28");
7316c4d0b41SAdrian Hunter 	asm volatile("vpermi2pd %zmm26,%zmm27,%zmm28");
7326c4d0b41SAdrian Hunter 
7336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7a */
7346c4d0b41SAdrian Hunter 
7356c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastb %eax,%xmm30");
7366c4d0b41SAdrian Hunter 
7376c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7b */
7386c4d0b41SAdrian Hunter 
7396c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastw %eax,%xmm30");
7406c4d0b41SAdrian Hunter 
7416c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7c */
7426c4d0b41SAdrian Hunter 
7436c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastd %eax,%xmm30");
7446c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastq %rax,%zmm30");
7456c4d0b41SAdrian Hunter 
7466c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7d */
7476c4d0b41SAdrian Hunter 
7486c4d0b41SAdrian Hunter 	asm volatile("vpermt2b %zmm26,%zmm27,%zmm28");
7496c4d0b41SAdrian Hunter 	asm volatile("vpermt2w %zmm26,%zmm27,%zmm28");
7506c4d0b41SAdrian Hunter 
7516c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7e */
7526c4d0b41SAdrian Hunter 
7536c4d0b41SAdrian Hunter 	asm volatile("vpermt2d %zmm26,%zmm27,%zmm28");
7546c4d0b41SAdrian Hunter 	asm volatile("vpermt2q %zmm26,%zmm27,%zmm28");
7556c4d0b41SAdrian Hunter 
7566c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7f */
7576c4d0b41SAdrian Hunter 
7586c4d0b41SAdrian Hunter 	asm volatile("vpermt2ps %zmm26,%zmm27,%zmm28");
7596c4d0b41SAdrian Hunter 	asm volatile("vpermt2pd %zmm26,%zmm27,%zmm28");
7606c4d0b41SAdrian Hunter 
7616c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 83 */
7626c4d0b41SAdrian Hunter 
7636c4d0b41SAdrian Hunter 	asm volatile("vpmultishiftqb %zmm26,%zmm27,%zmm28");
7646c4d0b41SAdrian Hunter 
7656c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 88 */
7666c4d0b41SAdrian Hunter 
7676c4d0b41SAdrian Hunter 	asm volatile("vexpandps (%rcx),%zmm26");
7686c4d0b41SAdrian Hunter 	asm volatile("vexpandpd (%rcx),%zmm28");
7696c4d0b41SAdrian Hunter 
7706c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 89 */
7716c4d0b41SAdrian Hunter 
7726c4d0b41SAdrian Hunter 	asm volatile("vpexpandd (%rcx),%zmm28");
7736c4d0b41SAdrian Hunter 	asm volatile("vpexpandq (%rcx),%zmm26");
7746c4d0b41SAdrian Hunter 
7756c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8a */
7766c4d0b41SAdrian Hunter 
7776c4d0b41SAdrian Hunter 	asm volatile("vcompressps %zmm28,(%rcx)");
7786c4d0b41SAdrian Hunter 	asm volatile("vcompresspd %zmm28,(%rcx)");
7796c4d0b41SAdrian Hunter 
7806c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8b */
7816c4d0b41SAdrian Hunter 
7826c4d0b41SAdrian Hunter 	asm volatile("vpcompressd %zmm28,(%rcx)");
7836c4d0b41SAdrian Hunter 	asm volatile("vpcompressq %zmm26,(%rcx)");
7846c4d0b41SAdrian Hunter 
7856c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8d */
7866c4d0b41SAdrian Hunter 
7876c4d0b41SAdrian Hunter 	asm volatile("vpermb %zmm26,%zmm27,%zmm28");
7886c4d0b41SAdrian Hunter 	asm volatile("vpermw %zmm26,%zmm27,%zmm28");
7896c4d0b41SAdrian Hunter 
7909adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 8f */
7919adab034SAdrian Hunter 
7929adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");
7939adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");
7949adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");
7959adab034SAdrian Hunter 	asm volatile("vpshufbitqmb 0x12345678(%rax,%rcx,8),%zmm2,%k3");
7969adab034SAdrian Hunter 	asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");
7979adab034SAdrian Hunter 
7986c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 90 */
7996c4d0b41SAdrian Hunter 
8006c4d0b41SAdrian Hunter 	asm volatile("vpgatherdd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
8016c4d0b41SAdrian Hunter 	asm volatile("vpgatherdq %xmm2,0x04(%rbp,%xmm7,2),%xmm1");
8026c4d0b41SAdrian Hunter 	asm volatile("vpgatherdd 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");
8036c4d0b41SAdrian Hunter 	asm volatile("vpgatherdq 0x7b(%rbp,%ymm27,8),%zmm26{%k1}");
8046c4d0b41SAdrian Hunter 
8056c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 91 */
8066c4d0b41SAdrian Hunter 
8076c4d0b41SAdrian Hunter 	asm volatile("vpgatherqd %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
8086c4d0b41SAdrian Hunter 	asm volatile("vpgatherqq %xmm2,0x02(%rbp,%xmm7,2),%xmm1");
8096c4d0b41SAdrian Hunter 	asm volatile("vpgatherqd 0x7b(%rbp,%zmm27,8),%ymm26{%k1}");
8106c4d0b41SAdrian Hunter 	asm volatile("vpgatherqq 0x7b(%rbp,%zmm27,8),%zmm26{%k1}");
8116c4d0b41SAdrian Hunter 
8129adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 9a */
8139adab034SAdrian Hunter 
8149adab034SAdrian Hunter 	asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");
8159adab034SAdrian Hunter 	asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");
8169adab034SAdrian Hunter 	asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");
8179adab034SAdrian Hunter 	asm volatile("vfmsub132ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
8189adab034SAdrian Hunter 	asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
8199adab034SAdrian Hunter 
8209adab034SAdrian Hunter 	asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");
8219adab034SAdrian Hunter 	asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");
8229adab034SAdrian Hunter 	asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");
8239adab034SAdrian Hunter 	asm volatile("vfmsub132pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
8249adab034SAdrian Hunter 	asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
8259adab034SAdrian Hunter 
8269adab034SAdrian Hunter 	asm volatile("v4fmaddps (%rax), %zmm0, %zmm4");
8279adab034SAdrian Hunter 	asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");
8289adab034SAdrian Hunter 	asm volatile("v4fmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
8299adab034SAdrian Hunter 	asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
8309adab034SAdrian Hunter 
8319adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 9b */
8329adab034SAdrian Hunter 
8339adab034SAdrian Hunter 	asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");
8349adab034SAdrian Hunter 	asm volatile("vfmsub132ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
8359adab034SAdrian Hunter 	asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
8369adab034SAdrian Hunter 
8379adab034SAdrian Hunter 	asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");
8389adab034SAdrian Hunter 	asm volatile("vfmsub132sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
8399adab034SAdrian Hunter 	asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
8409adab034SAdrian Hunter 
8419adab034SAdrian Hunter 	asm volatile("v4fmaddss (%rax), %xmm0, %xmm4");
8429adab034SAdrian Hunter 	asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");
8439adab034SAdrian Hunter 	asm volatile("v4fmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");
8449adab034SAdrian Hunter 	asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
8459adab034SAdrian Hunter 
8466c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a0 */
8476c4d0b41SAdrian Hunter 
8486c4d0b41SAdrian Hunter 	asm volatile("vpscatterdd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
8496c4d0b41SAdrian Hunter 	asm volatile("vpscatterdq %zmm26,0x7b(%rbp,%ymm27,8){%k1}");
8506c4d0b41SAdrian Hunter 
8516c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a1 */
8526c4d0b41SAdrian Hunter 
8536c4d0b41SAdrian Hunter 	asm volatile("vpscatterqd %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
8546c4d0b41SAdrian Hunter 	asm volatile("vpscatterqq %ymm6,0x7b(%rbp,%ymm27,8){%k1}");
8556c4d0b41SAdrian Hunter 
8566c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a2 */
8576c4d0b41SAdrian Hunter 
8586c4d0b41SAdrian Hunter 	asm volatile("vscatterdps %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
8596c4d0b41SAdrian Hunter 	asm volatile("vscatterdpd %zmm28,0x7b(%rbp,%ymm27,8){%k1}");
8606c4d0b41SAdrian Hunter 
8616c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a3 */
8626c4d0b41SAdrian Hunter 
8636c4d0b41SAdrian Hunter 	asm volatile("vscatterqps %ymm6,0x7b(%rbp,%zmm29,8){%k1}");
8646c4d0b41SAdrian Hunter 	asm volatile("vscatterqpd %zmm28,0x7b(%rbp,%zmm29,8){%k1}");
8656c4d0b41SAdrian Hunter 
8669adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 aa */
8679adab034SAdrian Hunter 
8689adab034SAdrian Hunter 	asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
8699adab034SAdrian Hunter 	asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
8709adab034SAdrian Hunter 	asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
8719adab034SAdrian Hunter 	asm volatile("vfmsub213ps 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
8729adab034SAdrian Hunter 	asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
8739adab034SAdrian Hunter 
8749adab034SAdrian Hunter 	asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
8759adab034SAdrian Hunter 	asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
8769adab034SAdrian Hunter 	asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
8779adab034SAdrian Hunter 	asm volatile("vfmsub213pd 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
8789adab034SAdrian Hunter 	asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
8799adab034SAdrian Hunter 
8809adab034SAdrian Hunter 	asm volatile("v4fnmaddps (%rax), %zmm0, %zmm4");
8819adab034SAdrian Hunter 	asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
8829adab034SAdrian Hunter 	asm volatile("v4fnmaddps 0x12345678(%rax,%rcx,8),%zmm0,%zmm4");
8839adab034SAdrian Hunter 	asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
8849adab034SAdrian Hunter 
8859adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 ab */
8869adab034SAdrian Hunter 
8879adab034SAdrian Hunter 	asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
8889adab034SAdrian Hunter 	asm volatile("vfmsub213ss 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
8899adab034SAdrian Hunter 	asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
8909adab034SAdrian Hunter 
8919adab034SAdrian Hunter 	asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
8929adab034SAdrian Hunter 	asm volatile("vfmsub213sd 0x12345678(%rax,%rcx,8),%xmm2,%xmm3");
8939adab034SAdrian Hunter 	asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
8949adab034SAdrian Hunter 
8959adab034SAdrian Hunter 	asm volatile("v4fnmaddss (%rax), %xmm0, %xmm4");
8969adab034SAdrian Hunter 	asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
8979adab034SAdrian Hunter 	asm volatile("v4fnmaddss 0x12345678(%rax,%rcx,8),%xmm0,%xmm4");
8989adab034SAdrian Hunter 	asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
8999adab034SAdrian Hunter 
9006c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 b4 */
9016c4d0b41SAdrian Hunter 
9026c4d0b41SAdrian Hunter 	asm volatile("vpmadd52luq %zmm26,%zmm27,%zmm28");
9036c4d0b41SAdrian Hunter 
9046c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 b5 */
9056c4d0b41SAdrian Hunter 
9066c4d0b41SAdrian Hunter 	asm volatile("vpmadd52huq %zmm26,%zmm27,%zmm28");
9076c4d0b41SAdrian Hunter 
9086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c4 */
9096c4d0b41SAdrian Hunter 
9106c4d0b41SAdrian Hunter 	asm volatile("vpconflictd %zmm26,%zmm27");
9116c4d0b41SAdrian Hunter 	asm volatile("vpconflictq %zmm26,%zmm27");
9126c4d0b41SAdrian Hunter 
9136c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c8 */
9146c4d0b41SAdrian Hunter 
9156c4d0b41SAdrian Hunter 	asm volatile("vexp2ps %zmm29,%zmm30");
9166c4d0b41SAdrian Hunter 	asm volatile("vexp2pd %zmm26,%zmm27");
9176c4d0b41SAdrian Hunter 
9186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 ca */
9196c4d0b41SAdrian Hunter 
9206c4d0b41SAdrian Hunter 	asm volatile("vrcp28ps %zmm29,%zmm30");
9216c4d0b41SAdrian Hunter 	asm volatile("vrcp28pd %zmm26,%zmm27");
9226c4d0b41SAdrian Hunter 
9236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cb */
9246c4d0b41SAdrian Hunter 
9256c4d0b41SAdrian Hunter 	asm volatile("vrcp28ss %xmm28,%xmm29,%xmm30{%k7}");
9266c4d0b41SAdrian Hunter 	asm volatile("vrcp28sd %xmm25,%xmm26,%xmm27{%k7}");
9276c4d0b41SAdrian Hunter 
9286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cc */
9296c4d0b41SAdrian Hunter 
9306c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28ps %zmm29,%zmm30");
9316c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28pd %zmm26,%zmm27");
9326c4d0b41SAdrian Hunter 
9336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cd */
9346c4d0b41SAdrian Hunter 
9356c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28ss %xmm28,%xmm29,%xmm30{%k7}");
9366c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28sd %xmm25,%xmm26,%xmm27{%k7}");
9376c4d0b41SAdrian Hunter 
9389adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 cf */
9399adab034SAdrian Hunter 
9409adab034SAdrian Hunter 	asm volatile("gf2p8mulb %xmm1, %xmm3");
9419adab034SAdrian Hunter 	asm volatile("gf2p8mulb 0x12345678(%rax,%rcx,8),%xmm3");
9429adab034SAdrian Hunter 	asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");
9439adab034SAdrian Hunter 
9449adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");
9459adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");
9469adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");
9479adab034SAdrian Hunter 	asm volatile("vgf2p8mulb 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
9489adab034SAdrian Hunter 	asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
9499adab034SAdrian Hunter 
9509adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 dc */
9519adab034SAdrian Hunter 
9529adab034SAdrian Hunter 	asm volatile("vaesenc %xmm1, %xmm2, %xmm3");
9539adab034SAdrian Hunter 	asm volatile("vaesenc %ymm1, %ymm2, %ymm3");
9549adab034SAdrian Hunter 	asm volatile("vaesenc %zmm1, %zmm2, %zmm3");
9559adab034SAdrian Hunter 	asm volatile("vaesenc 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
9569adab034SAdrian Hunter 	asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
9579adab034SAdrian Hunter 
9589adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 dd */
9599adab034SAdrian Hunter 
9609adab034SAdrian Hunter 	asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");
9619adab034SAdrian Hunter 	asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");
9629adab034SAdrian Hunter 	asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");
9639adab034SAdrian Hunter 	asm volatile("vaesenclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
9649adab034SAdrian Hunter 	asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
9659adab034SAdrian Hunter 
9669adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 de */
9679adab034SAdrian Hunter 
9689adab034SAdrian Hunter 	asm volatile("vaesdec %xmm1, %xmm2, %xmm3");
9699adab034SAdrian Hunter 	asm volatile("vaesdec %ymm1, %ymm2, %ymm3");
9709adab034SAdrian Hunter 	asm volatile("vaesdec %zmm1, %zmm2, %zmm3");
9719adab034SAdrian Hunter 	asm volatile("vaesdec 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
9729adab034SAdrian Hunter 	asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
9739adab034SAdrian Hunter 
9749adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 df */
9759adab034SAdrian Hunter 
9769adab034SAdrian Hunter 	asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");
9779adab034SAdrian Hunter 	asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");
9789adab034SAdrian Hunter 	asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");
9799adab034SAdrian Hunter 	asm volatile("vaesdeclast 0x12345678(%rax,%rcx,8),%zmm2,%zmm3");
9809adab034SAdrian Hunter 	asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
9819adab034SAdrian Hunter 
9826c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 03 */
9836c4d0b41SAdrian Hunter 
9846c4d0b41SAdrian Hunter 	asm volatile("valignd $0x12,%zmm28,%zmm29,%zmm30");
9856c4d0b41SAdrian Hunter 	asm volatile("valignq $0x12,%zmm25,%zmm26,%zmm27");
9866c4d0b41SAdrian Hunter 
9876c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 08 */
9886c4d0b41SAdrian Hunter 
9896c4d0b41SAdrian Hunter 	asm volatile("vroundps $0x5,%ymm6,%ymm2");
9906c4d0b41SAdrian Hunter 	asm volatile("vrndscaleps $0x12,%zmm25,%zmm26");
9916c4d0b41SAdrian Hunter 
9926c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 09 */
9936c4d0b41SAdrian Hunter 
9946c4d0b41SAdrian Hunter 	asm volatile("vroundpd $0x5,%ymm6,%ymm2");
9956c4d0b41SAdrian Hunter 	asm volatile("vrndscalepd $0x12,%zmm25,%zmm26");
9966c4d0b41SAdrian Hunter 
9976c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1a */
9986c4d0b41SAdrian Hunter 
9996c4d0b41SAdrian Hunter 	asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");
10006c4d0b41SAdrian Hunter 	asm volatile("vrndscaless $0x12,%xmm24,%xmm25,%xmm26{%k7}");
10016c4d0b41SAdrian Hunter 
10026c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 0b */
10036c4d0b41SAdrian Hunter 
10046c4d0b41SAdrian Hunter 	asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");
10056c4d0b41SAdrian Hunter 	asm volatile("vrndscalesd $0x12,%xmm24,%xmm25,%xmm26{%k7}");
10066c4d0b41SAdrian Hunter 
10076c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 18 */
10086c4d0b41SAdrian Hunter 
10096c4d0b41SAdrian Hunter 	asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");
10106c4d0b41SAdrian Hunter 	asm volatile("vinsertf32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
10116c4d0b41SAdrian Hunter 	asm volatile("vinsertf64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
10126c4d0b41SAdrian Hunter 
10136c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 19 */
10146c4d0b41SAdrian Hunter 
10156c4d0b41SAdrian Hunter 	asm volatile("vextractf128 $0x5,%ymm4,%xmm4");
10166c4d0b41SAdrian Hunter 	asm volatile("vextractf32x4 $0x12,%zmm25,%xmm26{%k7}");
10176c4d0b41SAdrian Hunter 	asm volatile("vextractf64x2 $0x12,%zmm25,%xmm26{%k7}");
10186c4d0b41SAdrian Hunter 
10196c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1a */
10206c4d0b41SAdrian Hunter 
10216c4d0b41SAdrian Hunter 	asm volatile("vinsertf32x8 $0x12,%ymm25,%zmm26,%zmm27{%k7}");
10226c4d0b41SAdrian Hunter 	asm volatile("vinsertf64x4 $0x12,%ymm28,%zmm29,%zmm30{%k7}");
10236c4d0b41SAdrian Hunter 
10246c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1b */
10256c4d0b41SAdrian Hunter 
10266c4d0b41SAdrian Hunter 	asm volatile("vextractf32x8 $0x12,%zmm29,%ymm30{%k7}");
10276c4d0b41SAdrian Hunter 	asm volatile("vextractf64x4 $0x12,%zmm26,%ymm27{%k7}");
10286c4d0b41SAdrian Hunter 
10296c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1e */
10306c4d0b41SAdrian Hunter 
10316c4d0b41SAdrian Hunter 	asm volatile("vpcmpud $0x12,%zmm29,%zmm30,%k5");
10326c4d0b41SAdrian Hunter 	asm volatile("vpcmpuq $0x12,%zmm26,%zmm27,%k5");
10336c4d0b41SAdrian Hunter 
10346c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1f */
10356c4d0b41SAdrian Hunter 
10366c4d0b41SAdrian Hunter 	asm volatile("vpcmpd $0x12,%zmm29,%zmm30,%k5");
10376c4d0b41SAdrian Hunter 	asm volatile("vpcmpq $0x12,%zmm26,%zmm27,%k5");
10386c4d0b41SAdrian Hunter 
10396c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 23 */
10406c4d0b41SAdrian Hunter 
10416c4d0b41SAdrian Hunter 	asm volatile("vshuff32x4 $0x12,%zmm28,%zmm29,%zmm30");
10426c4d0b41SAdrian Hunter 	asm volatile("vshuff64x2 $0x12,%zmm25,%zmm26,%zmm27");
10436c4d0b41SAdrian Hunter 
10446c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 25 */
10456c4d0b41SAdrian Hunter 
10466c4d0b41SAdrian Hunter 	asm volatile("vpternlogd $0x12,%zmm28,%zmm29,%zmm30");
10476c4d0b41SAdrian Hunter 	asm volatile("vpternlogq $0x12,%zmm28,%zmm29,%zmm30");
10486c4d0b41SAdrian Hunter 
10496c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 26 */
10506c4d0b41SAdrian Hunter 
10516c4d0b41SAdrian Hunter 	asm volatile("vgetmantps $0x12,%zmm26,%zmm27");
10526c4d0b41SAdrian Hunter 	asm volatile("vgetmantpd $0x12,%zmm29,%zmm30");
10536c4d0b41SAdrian Hunter 
10546c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 27 */
10556c4d0b41SAdrian Hunter 
10566c4d0b41SAdrian Hunter 	asm volatile("vgetmantss $0x12,%xmm25,%xmm26,%xmm27{%k7}");
10576c4d0b41SAdrian Hunter 	asm volatile("vgetmantsd $0x12,%xmm28,%xmm29,%xmm30{%k7}");
10586c4d0b41SAdrian Hunter 
10596c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 38 */
10606c4d0b41SAdrian Hunter 
10616c4d0b41SAdrian Hunter 	asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");
10626c4d0b41SAdrian Hunter 	asm volatile("vinserti32x4 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
10636c4d0b41SAdrian Hunter 	asm volatile("vinserti64x2 $0x12,%xmm24,%zmm25,%zmm26{%k7}");
10646c4d0b41SAdrian Hunter 
10656c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 39 */
10666c4d0b41SAdrian Hunter 
10676c4d0b41SAdrian Hunter 	asm volatile("vextracti128 $0x5,%ymm4,%xmm6");
10686c4d0b41SAdrian Hunter 	asm volatile("vextracti32x4 $0x12,%zmm25,%xmm26{%k7}");
10696c4d0b41SAdrian Hunter 	asm volatile("vextracti64x2 $0x12,%zmm25,%xmm26{%k7}");
10706c4d0b41SAdrian Hunter 
10716c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3a */
10726c4d0b41SAdrian Hunter 
10736c4d0b41SAdrian Hunter 	asm volatile("vinserti32x8 $0x12,%ymm28,%zmm29,%zmm30{%k7}");
10746c4d0b41SAdrian Hunter 	asm volatile("vinserti64x4 $0x12,%ymm25,%zmm26,%zmm27{%k7}");
10756c4d0b41SAdrian Hunter 
10766c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3b */
10776c4d0b41SAdrian Hunter 
10786c4d0b41SAdrian Hunter 	asm volatile("vextracti32x8 $0x12,%zmm29,%ymm30{%k7}");
10796c4d0b41SAdrian Hunter 	asm volatile("vextracti64x4 $0x12,%zmm26,%ymm27{%k7}");
10806c4d0b41SAdrian Hunter 
10816c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3e */
10826c4d0b41SAdrian Hunter 
10836c4d0b41SAdrian Hunter 	asm volatile("vpcmpub $0x12,%zmm29,%zmm30,%k5");
10846c4d0b41SAdrian Hunter 	asm volatile("vpcmpuw $0x12,%zmm26,%zmm27,%k5");
10856c4d0b41SAdrian Hunter 
10866c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3f */
10876c4d0b41SAdrian Hunter 
10886c4d0b41SAdrian Hunter 	asm volatile("vpcmpb $0x12,%zmm29,%zmm30,%k5");
10896c4d0b41SAdrian Hunter 	asm volatile("vpcmpw $0x12,%zmm26,%zmm27,%k5");
10906c4d0b41SAdrian Hunter 
10916c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 43 */
10926c4d0b41SAdrian Hunter 
10936c4d0b41SAdrian Hunter 	asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");
10946c4d0b41SAdrian Hunter 	asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");
10956c4d0b41SAdrian Hunter 
10966c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 43 */
10976c4d0b41SAdrian Hunter 
10986c4d0b41SAdrian Hunter 	asm volatile("vshufi32x4 $0x12,%zmm25,%zmm26,%zmm27");
10996c4d0b41SAdrian Hunter 	asm volatile("vshufi64x2 $0x12,%zmm28,%zmm29,%zmm30");
11006c4d0b41SAdrian Hunter 
11019adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 44 */
11029adab034SAdrian Hunter 
11039adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");
11049adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");
11059adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");
11069adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%zmm25,%zmm26,%zmm27");
11079adab034SAdrian Hunter 
11086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 50 */
11096c4d0b41SAdrian Hunter 
11106c4d0b41SAdrian Hunter 	asm volatile("vrangeps $0x12,%zmm25,%zmm26,%zmm27");
11116c4d0b41SAdrian Hunter 	asm volatile("vrangepd $0x12,%zmm28,%zmm29,%zmm30");
11126c4d0b41SAdrian Hunter 
11136c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 51 */
11146c4d0b41SAdrian Hunter 
11156c4d0b41SAdrian Hunter 	asm volatile("vrangess $0x12,%xmm25,%xmm26,%xmm27");
11166c4d0b41SAdrian Hunter 	asm volatile("vrangesd $0x12,%xmm28,%xmm29,%xmm30");
11176c4d0b41SAdrian Hunter 
11186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 54 */
11196c4d0b41SAdrian Hunter 
11206c4d0b41SAdrian Hunter 	asm volatile("vfixupimmps $0x12,%zmm28,%zmm29,%zmm30");
11216c4d0b41SAdrian Hunter 	asm volatile("vfixupimmpd $0x12,%zmm25,%zmm26,%zmm27");
11226c4d0b41SAdrian Hunter 
11236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 55 */
11246c4d0b41SAdrian Hunter 
11256c4d0b41SAdrian Hunter 	asm volatile("vfixupimmss $0x12,%xmm28,%xmm29,%xmm30{%k7}");
11266c4d0b41SAdrian Hunter 	asm volatile("vfixupimmsd $0x12,%xmm25,%xmm26,%xmm27{%k7}");
11276c4d0b41SAdrian Hunter 
11286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 56 */
11296c4d0b41SAdrian Hunter 
11306c4d0b41SAdrian Hunter 	asm volatile("vreduceps $0x12,%zmm26,%zmm27");
11316c4d0b41SAdrian Hunter 	asm volatile("vreducepd $0x12,%zmm29,%zmm30");
11326c4d0b41SAdrian Hunter 
11336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 57 */
11346c4d0b41SAdrian Hunter 
11356c4d0b41SAdrian Hunter 	asm volatile("vreducess $0x12,%xmm25,%xmm26,%xmm27");
11366c4d0b41SAdrian Hunter 	asm volatile("vreducesd $0x12,%xmm28,%xmm29,%xmm30");
11376c4d0b41SAdrian Hunter 
11386c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 66 */
11396c4d0b41SAdrian Hunter 
11406c4d0b41SAdrian Hunter 	asm volatile("vfpclassps $0x12,%zmm27,%k5");
11416c4d0b41SAdrian Hunter 	asm volatile("vfpclasspd $0x12,%zmm30,%k5");
11426c4d0b41SAdrian Hunter 
11436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 67 */
11446c4d0b41SAdrian Hunter 
11456c4d0b41SAdrian Hunter 	asm volatile("vfpclassss $0x12,%xmm27,%k5");
11466c4d0b41SAdrian Hunter 	asm volatile("vfpclasssd $0x12,%xmm30,%k5");
11476c4d0b41SAdrian Hunter 
11489adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 70 */
11499adab034SAdrian Hunter 
11509adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");
11519adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");
11529adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");
11539adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%zmm25,%zmm26,%zmm27");
11549adab034SAdrian Hunter 
11559adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 71 */
11569adab034SAdrian Hunter 
11579adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");
11589adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");
11599adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");
11609adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%zmm25,%zmm26,%zmm27");
11619adab034SAdrian Hunter 
11629adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");
11639adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");
11649adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");
11659adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%zmm25,%zmm26,%zmm27");
11669adab034SAdrian Hunter 
11679adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 72 */
11689adab034SAdrian Hunter 
11699adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");
11709adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");
11719adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");
11729adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%zmm25,%zmm26,%zmm27");
11739adab034SAdrian Hunter 
11749adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 73 */
11759adab034SAdrian Hunter 
11769adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");
11779adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");
11789adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");
11799adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%zmm25,%zmm26,%zmm27");
11809adab034SAdrian Hunter 
11819adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");
11829adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");
11839adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");
11849adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%zmm25,%zmm26,%zmm27");
11859adab034SAdrian Hunter 
11869adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a ce */
11879adab034SAdrian Hunter 
11889adab034SAdrian Hunter 	asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");
11899adab034SAdrian Hunter 
11909adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");
11919adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");
11929adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");
11939adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%zmm25,%zmm26,%zmm27");
11949adab034SAdrian Hunter 
11959adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a cf */
11969adab034SAdrian Hunter 
11979adab034SAdrian Hunter 	asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");
11989adab034SAdrian Hunter 
11999adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");
12009adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");
12019adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");
12029adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%zmm25,%zmm26,%zmm27");
12039adab034SAdrian Hunter 
12046c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 72 (Grp13) */
12056c4d0b41SAdrian Hunter 
12066c4d0b41SAdrian Hunter 	asm volatile("vprord $0x12,%zmm25,%zmm26");
12076c4d0b41SAdrian Hunter 	asm volatile("vprorq $0x12,%zmm25,%zmm26");
12086c4d0b41SAdrian Hunter 	asm volatile("vprold $0x12,%zmm29,%zmm30");
12096c4d0b41SAdrian Hunter 	asm volatile("vprolq $0x12,%zmm29,%zmm30");
12106c4d0b41SAdrian Hunter 	asm volatile("psrad  $0x2,%mm6");
12116c4d0b41SAdrian Hunter 	asm volatile("vpsrad $0x5,%ymm6,%ymm2");
12126c4d0b41SAdrian Hunter 	asm volatile("vpsrad $0x5,%zmm26,%zmm22");
12136c4d0b41SAdrian Hunter 	asm volatile("vpsraq $0x5,%zmm26,%zmm22");
12146c4d0b41SAdrian Hunter 
12156c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c6 (Grp18) */
12166c4d0b41SAdrian Hunter 
12176c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0dps 0x7b(%r14,%zmm31,8){%k1}");
12186c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0dpd 0x7b(%r14,%ymm31,8){%k1}");
12196c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1dps 0x7b(%r14,%zmm31,8){%k1}");
12206c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1dpd 0x7b(%r14,%ymm31,8){%k1}");
12216c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0dps 0x7b(%r14,%zmm31,8){%k1}");
12226c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0dpd 0x7b(%r14,%ymm31,8){%k1}");
12236c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1dps 0x7b(%r14,%zmm31,8){%k1}");
12246c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1dpd 0x7b(%r14,%ymm31,8){%k1}");
12256c4d0b41SAdrian Hunter 
12266c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c7 (Grp19) */
12276c4d0b41SAdrian Hunter 
12286c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0qps 0x7b(%r14,%zmm31,8){%k1}");
12296c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0qpd 0x7b(%r14,%zmm31,8){%k1}");
12306c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1qps 0x7b(%r14,%zmm31,8){%k1}");
12316c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1qpd 0x7b(%r14,%zmm31,8){%k1}");
12326c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0qps 0x7b(%r14,%zmm31,8){%k1}");
12336c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0qpd 0x7b(%r14,%zmm31,8){%k1}");
12346c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1qps 0x7b(%r14,%zmm31,8){%k1}");
12356c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1qpd 0x7b(%r14,%zmm31,8){%k1}");
12366c4d0b41SAdrian Hunter 
12376c4d0b41SAdrian Hunter 	/* AVX-512: Examples */
12386c4d0b41SAdrian Hunter 
12396c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm28,%zmm29,%zmm30");
12406c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}");
12416c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm28,%zmm29,%zmm30{%k7}{z}");
12426c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rn-sae},%zmm28,%zmm29,%zmm30");
12436c4d0b41SAdrian Hunter 	asm volatile("vaddpd {ru-sae},%zmm28,%zmm29,%zmm30");
12446c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rd-sae},%zmm28,%zmm29,%zmm30");
12456c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rz-sae},%zmm28,%zmm29,%zmm30");
12466c4d0b41SAdrian Hunter 	asm volatile("vaddpd (%rcx),%zmm29,%zmm30");
12476c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x123(%rax,%r14,8),%zmm29,%zmm30");
12486c4d0b41SAdrian Hunter 	asm volatile("vaddpd (%rcx){1to8},%zmm29,%zmm30");
12496c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x1fc0(%rdx),%zmm29,%zmm30");
12506c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x3f8(%rdx){1to8},%zmm29,%zmm30");
12516c4d0b41SAdrian Hunter 	asm volatile("vcmpeq_uqps 0x1fc(%rdx){1to16},%zmm30,%k5");
12526c4d0b41SAdrian Hunter 	asm volatile("vcmpltsd 0x123(%rax,%r14,8),%xmm29,%k5{%k7}");
12536c4d0b41SAdrian Hunter 	asm volatile("vcmplesd {sae},%xmm28,%xmm29,%k5{%k7}");
12546c4d0b41SAdrian Hunter 	asm volatile("vgetmantss $0x5b,0x123(%rax,%r14,8),%xmm29,%xmm30{%k7}");
12556c4d0b41SAdrian Hunter 
1256d8b167f9SMatt Fleming 	/* bndmk m64, bnd */
1257d8b167f9SMatt Fleming 
1258d8b167f9SMatt Fleming 	asm volatile("bndmk (%rax), %bnd0");
1259d8b167f9SMatt Fleming 	asm volatile("bndmk (%r8), %bnd0");
1260d8b167f9SMatt Fleming 	asm volatile("bndmk (0x12345678), %bnd0");
1261d8b167f9SMatt Fleming 	asm volatile("bndmk (%rax), %bnd3");
1262d8b167f9SMatt Fleming 	asm volatile("bndmk (%rcx,%rax,1), %bnd0");
1263d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(,%rax,1), %bnd0");
1264d8b167f9SMatt Fleming 	asm volatile("bndmk (%rax,%rcx,1), %bnd0");
1265d8b167f9SMatt Fleming 	asm volatile("bndmk (%rax,%rcx,8), %bnd0");
1266d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rax), %bnd0");
1267d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rbp), %bnd0");
1268d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rcx,%rax,1), %bnd0");
1269d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rbp,%rax,1), %bnd0");
1270d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rax,%rcx,1), %bnd0");
1271d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%rax,%rcx,8), %bnd0");
1272d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rax), %bnd0");
1273d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rbp), %bnd0");
1274d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rcx,%rax,1), %bnd0");
1275d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rbp,%rax,1), %bnd0");
1276d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rax,%rcx,1), %bnd0");
1277d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%rax,%rcx,8), %bnd0");
1278d8b167f9SMatt Fleming 
1279d8b167f9SMatt Fleming 	/* bndcl r/m64, bnd */
1280d8b167f9SMatt Fleming 
1281d8b167f9SMatt Fleming 	asm volatile("bndcl (%rax), %bnd0");
1282d8b167f9SMatt Fleming 	asm volatile("bndcl (%r8), %bnd0");
1283d8b167f9SMatt Fleming 	asm volatile("bndcl (0x12345678), %bnd0");
1284d8b167f9SMatt Fleming 	asm volatile("bndcl (%rax), %bnd3");
1285d8b167f9SMatt Fleming 	asm volatile("bndcl (%rcx,%rax,1), %bnd0");
1286d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(,%rax,1), %bnd0");
1287d8b167f9SMatt Fleming 	asm volatile("bndcl (%rax,%rcx,1), %bnd0");
1288d8b167f9SMatt Fleming 	asm volatile("bndcl (%rax,%rcx,8), %bnd0");
1289d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rax), %bnd0");
1290d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rbp), %bnd0");
1291d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rcx,%rax,1), %bnd0");
1292d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rbp,%rax,1), %bnd0");
1293d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rax,%rcx,1), %bnd0");
1294d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%rax,%rcx,8), %bnd0");
1295d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rax), %bnd0");
1296d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rbp), %bnd0");
1297d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rcx,%rax,1), %bnd0");
1298d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rbp,%rax,1), %bnd0");
1299d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rax,%rcx,1), %bnd0");
1300d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%rax,%rcx,8), %bnd0");
1301d8b167f9SMatt Fleming 	asm volatile("bndcl %rax, %bnd0");
1302d8b167f9SMatt Fleming 
1303d8b167f9SMatt Fleming 	/* bndcu r/m64, bnd */
1304d8b167f9SMatt Fleming 
1305d8b167f9SMatt Fleming 	asm volatile("bndcu (%rax), %bnd0");
1306d8b167f9SMatt Fleming 	asm volatile("bndcu (%r8), %bnd0");
1307d8b167f9SMatt Fleming 	asm volatile("bndcu (0x12345678), %bnd0");
1308d8b167f9SMatt Fleming 	asm volatile("bndcu (%rax), %bnd3");
1309d8b167f9SMatt Fleming 	asm volatile("bndcu (%rcx,%rax,1), %bnd0");
1310d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(,%rax,1), %bnd0");
1311d8b167f9SMatt Fleming 	asm volatile("bndcu (%rax,%rcx,1), %bnd0");
1312d8b167f9SMatt Fleming 	asm volatile("bndcu (%rax,%rcx,8), %bnd0");
1313d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rax), %bnd0");
1314d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rbp), %bnd0");
1315d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rcx,%rax,1), %bnd0");
1316d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rbp,%rax,1), %bnd0");
1317d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rax,%rcx,1), %bnd0");
1318d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%rax,%rcx,8), %bnd0");
1319d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rax), %bnd0");
1320d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rbp), %bnd0");
1321d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rcx,%rax,1), %bnd0");
1322d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rbp,%rax,1), %bnd0");
1323d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rax,%rcx,1), %bnd0");
1324d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%rax,%rcx,8), %bnd0");
1325d8b167f9SMatt Fleming 	asm volatile("bndcu %rax, %bnd0");
1326d8b167f9SMatt Fleming 
1327d8b167f9SMatt Fleming 	/* bndcn r/m64, bnd */
1328d8b167f9SMatt Fleming 
1329d8b167f9SMatt Fleming 	asm volatile("bndcn (%rax), %bnd0");
1330d8b167f9SMatt Fleming 	asm volatile("bndcn (%r8), %bnd0");
1331d8b167f9SMatt Fleming 	asm volatile("bndcn (0x12345678), %bnd0");
1332d8b167f9SMatt Fleming 	asm volatile("bndcn (%rax), %bnd3");
1333d8b167f9SMatt Fleming 	asm volatile("bndcn (%rcx,%rax,1), %bnd0");
1334d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(,%rax,1), %bnd0");
1335d8b167f9SMatt Fleming 	asm volatile("bndcn (%rax,%rcx,1), %bnd0");
1336d8b167f9SMatt Fleming 	asm volatile("bndcn (%rax,%rcx,8), %bnd0");
1337d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rax), %bnd0");
1338d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rbp), %bnd0");
1339d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rcx,%rax,1), %bnd0");
1340d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rbp,%rax,1), %bnd0");
1341d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rax,%rcx,1), %bnd0");
1342d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%rax,%rcx,8), %bnd0");
1343d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rax), %bnd0");
1344d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rbp), %bnd0");
1345d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rcx,%rax,1), %bnd0");
1346d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rbp,%rax,1), %bnd0");
1347d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rax,%rcx,1), %bnd0");
1348d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%rax,%rcx,8), %bnd0");
1349d8b167f9SMatt Fleming 	asm volatile("bndcn %rax, %bnd0");
1350d8b167f9SMatt Fleming 
1351d8b167f9SMatt Fleming 	/* bndmov m128, bnd */
1352d8b167f9SMatt Fleming 
1353d8b167f9SMatt Fleming 	asm volatile("bndmov (%rax), %bnd0");
1354d8b167f9SMatt Fleming 	asm volatile("bndmov (%r8), %bnd0");
1355d8b167f9SMatt Fleming 	asm volatile("bndmov (0x12345678), %bnd0");
1356d8b167f9SMatt Fleming 	asm volatile("bndmov (%rax), %bnd3");
1357d8b167f9SMatt Fleming 	asm volatile("bndmov (%rcx,%rax,1), %bnd0");
1358d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(,%rax,1), %bnd0");
1359d8b167f9SMatt Fleming 	asm volatile("bndmov (%rax,%rcx,1), %bnd0");
1360d8b167f9SMatt Fleming 	asm volatile("bndmov (%rax,%rcx,8), %bnd0");
1361d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rax), %bnd0");
1362d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rbp), %bnd0");
1363d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rcx,%rax,1), %bnd0");
1364d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rbp,%rax,1), %bnd0");
1365d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rax,%rcx,1), %bnd0");
1366d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%rax,%rcx,8), %bnd0");
1367d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rax), %bnd0");
1368d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rbp), %bnd0");
1369d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rcx,%rax,1), %bnd0");
1370d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rbp,%rax,1), %bnd0");
1371d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rax,%rcx,1), %bnd0");
1372d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%rax,%rcx,8), %bnd0");
1373d8b167f9SMatt Fleming 
1374d8b167f9SMatt Fleming 	/* bndmov bnd, m128 */
1375d8b167f9SMatt Fleming 
1376d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%rax)");
1377d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%r8)");
1378d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (0x12345678)");
1379d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd3, (%rax)");
1380d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%rcx,%rax,1)");
1381d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(,%rax,1)");
1382d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%rax,%rcx,1)");
1383d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%rax,%rcx,8)");
1384d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rax)");
1385d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rbp)");
1386d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rcx,%rax,1)");
1387d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rbp,%rax,1)");
1388d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,1)");
1389d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%rax,%rcx,8)");
1390d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rax)");
1391d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rbp)");
1392d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rcx,%rax,1)");
1393d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rbp,%rax,1)");
1394d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,1)");
1395d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%rax,%rcx,8)");
1396d8b167f9SMatt Fleming 
1397d8b167f9SMatt Fleming 	/* bndmov bnd2, bnd1 */
1398d8b167f9SMatt Fleming 
1399d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, %bnd1");
1400d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd1, %bnd0");
1401d8b167f9SMatt Fleming 
1402d8b167f9SMatt Fleming 	/* bndldx mib, bnd */
1403d8b167f9SMatt Fleming 
1404d8b167f9SMatt Fleming 	asm volatile("bndldx (%rax), %bnd0");
1405d8b167f9SMatt Fleming 	asm volatile("bndldx (%r8), %bnd0");
1406d8b167f9SMatt Fleming 	asm volatile("bndldx (0x12345678), %bnd0");
1407d8b167f9SMatt Fleming 	asm volatile("bndldx (%rax), %bnd3");
1408d8b167f9SMatt Fleming 	asm volatile("bndldx (%rcx,%rax,1), %bnd0");
1409d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(,%rax,1), %bnd0");
1410d8b167f9SMatt Fleming 	asm volatile("bndldx (%rax,%rcx,1), %bnd0");
1411d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%rax), %bnd0");
1412d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%rbp), %bnd0");
1413d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%rcx,%rax,1), %bnd0");
1414d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%rbp,%rax,1), %bnd0");
1415d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%rax,%rcx,1), %bnd0");
1416d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%rax), %bnd0");
1417d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%rbp), %bnd0");
1418d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%rcx,%rax,1), %bnd0");
1419d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%rbp,%rax,1), %bnd0");
1420d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%rax,%rcx,1), %bnd0");
1421d8b167f9SMatt Fleming 
1422d8b167f9SMatt Fleming 	/* bndstx bnd, mib */
1423d8b167f9SMatt Fleming 
1424d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%rax)");
1425d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%r8)");
1426d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (0x12345678)");
1427d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd3, (%rax)");
1428d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%rcx,%rax,1)");
1429d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(,%rax,1)");
1430d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%rax,%rcx,1)");
1431d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%rax)");
1432d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%rbp)");
1433d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%rcx,%rax,1)");
1434d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%rbp,%rax,1)");
1435d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%rax,%rcx,1)");
1436d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%rax)");
1437d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%rbp)");
1438d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%rcx,%rax,1)");
1439d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%rbp,%rax,1)");
1440d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%rax,%rcx,1)");
1441d8b167f9SMatt Fleming 
1442d8b167f9SMatt Fleming 	/* bnd prefix on call, ret, jmp and all jcc */
1443d8b167f9SMatt Fleming 
1444d8b167f9SMatt Fleming 	asm volatile("bnd call label1");  /* Expecting: call unconditional 0 */
1445d8b167f9SMatt Fleming 	asm volatile("bnd call *(%eax)"); /* Expecting: call indirect      0 */
1446d8b167f9SMatt Fleming 	asm volatile("bnd ret");          /* Expecting: ret  indirect      0 */
1447d8b167f9SMatt Fleming 	asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0 */
1448d8b167f9SMatt Fleming 	asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0 */
1449d8b167f9SMatt Fleming 	asm volatile("bnd jmp *(%ecx)");  /* Expecting: jmp  indirect      0 */
1450d8b167f9SMatt Fleming 	asm volatile("bnd jne label1");   /* Expecting: jcc  conditional   0 */
1451d8b167f9SMatt Fleming 
1452d8b167f9SMatt Fleming 	/* sha1rnds4 imm8, xmm2/m128, xmm1 */
1453d8b167f9SMatt Fleming 
1454d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");
1455d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");
1456d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, %xmm8, %xmm0");
1457d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, %xmm7, %xmm8");
1458d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, %xmm15, %xmm8");
1459d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%rax), %xmm0");
1460d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%r8), %xmm0");
1461d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");
1462d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%rax), %xmm3");
1463d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%rcx,%rax,1), %xmm0");
1464d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(,%rax,1), %xmm0");
1465d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%rax,%rcx,1), %xmm0");
1466d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%rax,%rcx,8), %xmm0");
1467d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rax), %xmm0");
1468d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rbp), %xmm0");
1469d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rcx,%rax,1), %xmm0");
1470d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rbp,%rax,1), %xmm0");
1471d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,1), %xmm0");
1472d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%rax,%rcx,8), %xmm0");
1473d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rax), %xmm0");
1474d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp), %xmm0");
1475d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rcx,%rax,1), %xmm0");
1476d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rbp,%rax,1), %xmm0");
1477d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,1), %xmm0");
1478d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm0");
1479d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%rax,%rcx,8), %xmm15");
1480d8b167f9SMatt Fleming 
1481d8b167f9SMatt Fleming 	/* sha1nexte xmm2/m128, xmm1 */
1482d8b167f9SMatt Fleming 
1483d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm1, %xmm0");
1484d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm7, %xmm2");
1485d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm8, %xmm0");
1486d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm7, %xmm8");
1487d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm15, %xmm8");
1488d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%rax), %xmm0");
1489d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%r8), %xmm0");
1490d8b167f9SMatt Fleming 	asm volatile("sha1nexte (0x12345678), %xmm0");
1491d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%rax), %xmm3");
1492d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%rcx,%rax,1), %xmm0");
1493d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(,%rax,1), %xmm0");
1494d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%rax,%rcx,1), %xmm0");
1495d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%rax,%rcx,8), %xmm0");
1496d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rax), %xmm0");
1497d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rbp), %xmm0");
1498d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rcx,%rax,1), %xmm0");
1499d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rbp,%rax,1), %xmm0");
1500d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rax,%rcx,1), %xmm0");
1501d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%rax,%rcx,8), %xmm0");
1502d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rax), %xmm0");
1503d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rbp), %xmm0");
1504d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rcx,%rax,1), %xmm0");
1505d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rbp,%rax,1), %xmm0");
1506d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rax,%rcx,1), %xmm0");
1507d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm0");
1508d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%rax,%rcx,8), %xmm15");
1509d8b167f9SMatt Fleming 
1510d8b167f9SMatt Fleming 	/* sha1msg1 xmm2/m128, xmm1 */
1511d8b167f9SMatt Fleming 
1512d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm1, %xmm0");
1513d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm7, %xmm2");
1514d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm8, %xmm0");
1515d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm7, %xmm8");
1516d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm15, %xmm8");
1517d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%rax), %xmm0");
1518d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%r8), %xmm0");
1519d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (0x12345678), %xmm0");
1520d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%rax), %xmm3");
1521d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%rcx,%rax,1), %xmm0");
1522d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(,%rax,1), %xmm0");
1523d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%rax,%rcx,1), %xmm0");
1524d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%rax,%rcx,8), %xmm0");
1525d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rax), %xmm0");
1526d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rbp), %xmm0");
1527d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rcx,%rax,1), %xmm0");
1528d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rbp,%rax,1), %xmm0");
1529d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rax,%rcx,1), %xmm0");
1530d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%rax,%rcx,8), %xmm0");
1531d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rax), %xmm0");
1532d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rbp), %xmm0");
1533d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rcx,%rax,1), %xmm0");
1534d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rbp,%rax,1), %xmm0");
1535d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rax,%rcx,1), %xmm0");
1536d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm0");
1537d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%rax,%rcx,8), %xmm15");
1538d8b167f9SMatt Fleming 
1539d8b167f9SMatt Fleming 	/* sha1msg2 xmm2/m128, xmm1 */
1540d8b167f9SMatt Fleming 
1541d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm1, %xmm0");
1542d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm7, %xmm2");
1543d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm8, %xmm0");
1544d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm7, %xmm8");
1545d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm15, %xmm8");
1546d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%rax), %xmm0");
1547d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%r8), %xmm0");
1548d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (0x12345678), %xmm0");
1549d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%rax), %xmm3");
1550d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%rcx,%rax,1), %xmm0");
1551d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(,%rax,1), %xmm0");
1552d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%rax,%rcx,1), %xmm0");
1553d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%rax,%rcx,8), %xmm0");
1554d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rax), %xmm0");
1555d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rbp), %xmm0");
1556d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rcx,%rax,1), %xmm0");
1557d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rbp,%rax,1), %xmm0");
1558d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rax,%rcx,1), %xmm0");
1559d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%rax,%rcx,8), %xmm0");
1560d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rax), %xmm0");
1561d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rbp), %xmm0");
1562d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rcx,%rax,1), %xmm0");
1563d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rbp,%rax,1), %xmm0");
1564d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rax,%rcx,1), %xmm0");
1565d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm0");
1566d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%rax,%rcx,8), %xmm15");
1567d8b167f9SMatt Fleming 
1568d8b167f9SMatt Fleming 	/* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */
1569d8b167f9SMatt Fleming 	/* Note sha256rnds2 has an implicit operand 'xmm0' */
1570d8b167f9SMatt Fleming 
1571d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm4, %xmm1");
1572d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm7, %xmm2");
1573d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm8, %xmm1");
1574d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm7, %xmm8");
1575d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm15, %xmm8");
1576d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%rax), %xmm1");
1577d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%r8), %xmm1");
1578d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (0x12345678), %xmm1");
1579d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%rax), %xmm3");
1580d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%rcx,%rax,1), %xmm1");
1581d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(,%rax,1), %xmm1");
1582d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%rax,%rcx,1), %xmm1");
1583d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%rax,%rcx,8), %xmm1");
1584d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rax), %xmm1");
1585d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rbp), %xmm1");
1586d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rcx,%rax,1), %xmm1");
1587d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rbp,%rax,1), %xmm1");
1588d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rax,%rcx,1), %xmm1");
1589d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%rax,%rcx,8), %xmm1");
1590d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rax), %xmm1");
1591d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rbp), %xmm1");
1592d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rcx,%rax,1), %xmm1");
1593d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rbp,%rax,1), %xmm1");
1594d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rax,%rcx,1), %xmm1");
1595d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm1");
1596d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%rax,%rcx,8), %xmm15");
1597d8b167f9SMatt Fleming 
1598d8b167f9SMatt Fleming 	/* sha256msg1 xmm2/m128, xmm1 */
1599d8b167f9SMatt Fleming 
1600d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm1, %xmm0");
1601d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm7, %xmm2");
1602d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm8, %xmm0");
1603d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm7, %xmm8");
1604d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm15, %xmm8");
1605d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%rax), %xmm0");
1606d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%r8), %xmm0");
1607d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (0x12345678), %xmm0");
1608d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%rax), %xmm3");
1609d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%rcx,%rax,1), %xmm0");
1610d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(,%rax,1), %xmm0");
1611d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%rax,%rcx,1), %xmm0");
1612d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%rax,%rcx,8), %xmm0");
1613d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rax), %xmm0");
1614d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rbp), %xmm0");
1615d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rcx,%rax,1), %xmm0");
1616d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rbp,%rax,1), %xmm0");
1617d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rax,%rcx,1), %xmm0");
1618d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%rax,%rcx,8), %xmm0");
1619d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rax), %xmm0");
1620d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rbp), %xmm0");
1621d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rcx,%rax,1), %xmm0");
1622d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rbp,%rax,1), %xmm0");
1623d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rax,%rcx,1), %xmm0");
1624d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm0");
1625d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%rax,%rcx,8), %xmm15");
1626d8b167f9SMatt Fleming 
1627d8b167f9SMatt Fleming 	/* sha256msg2 xmm2/m128, xmm1 */
1628d8b167f9SMatt Fleming 
1629d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm1, %xmm0");
1630d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm7, %xmm2");
1631d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm8, %xmm0");
1632d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm7, %xmm8");
1633d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm15, %xmm8");
1634d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%rax), %xmm0");
1635d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%r8), %xmm0");
1636d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (0x12345678), %xmm0");
1637d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%rax), %xmm3");
1638d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%rcx,%rax,1), %xmm0");
1639d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(,%rax,1), %xmm0");
1640d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%rax,%rcx,1), %xmm0");
1641d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%rax,%rcx,8), %xmm0");
1642d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rax), %xmm0");
1643d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rbp), %xmm0");
1644d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rcx,%rax,1), %xmm0");
1645d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rbp,%rax,1), %xmm0");
1646d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rax,%rcx,1), %xmm0");
1647d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%rax,%rcx,8), %xmm0");
1648d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rax), %xmm0");
1649d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rbp), %xmm0");
1650d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rcx,%rax,1), %xmm0");
1651d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rbp,%rax,1), %xmm0");
1652d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rax,%rcx,1), %xmm0");
1653d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm0");
1654d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%rax,%rcx,8), %xmm15");
1655d8b167f9SMatt Fleming 
1656d8b167f9SMatt Fleming 	/* clflushopt m8 */
1657d8b167f9SMatt Fleming 
1658d8b167f9SMatt Fleming 	asm volatile("clflushopt (%rax)");
1659d8b167f9SMatt Fleming 	asm volatile("clflushopt (%r8)");
1660d8b167f9SMatt Fleming 	asm volatile("clflushopt (0x12345678)");
1661d8b167f9SMatt Fleming 	asm volatile("clflushopt 0x12345678(%rax,%rcx,8)");
1662d8b167f9SMatt Fleming 	asm volatile("clflushopt 0x12345678(%r8,%rcx,8)");
1663d8b167f9SMatt Fleming 	/* Also check instructions in the same group encoding as clflushopt */
1664d8b167f9SMatt Fleming 	asm volatile("clflush (%rax)");
1665d8b167f9SMatt Fleming 	asm volatile("clflush (%r8)");
1666d8b167f9SMatt Fleming 	asm volatile("sfence");
1667d8b167f9SMatt Fleming 
1668d8b167f9SMatt Fleming 	/* clwb m8 */
1669d8b167f9SMatt Fleming 
1670d8b167f9SMatt Fleming 	asm volatile("clwb (%rax)");
1671d8b167f9SMatt Fleming 	asm volatile("clwb (%r8)");
1672d8b167f9SMatt Fleming 	asm volatile("clwb (0x12345678)");
1673d8b167f9SMatt Fleming 	asm volatile("clwb 0x12345678(%rax,%rcx,8)");
1674d8b167f9SMatt Fleming 	asm volatile("clwb 0x12345678(%r8,%rcx,8)");
1675d8b167f9SMatt Fleming 	/* Also check instructions in the same group encoding as clwb */
1676d8b167f9SMatt Fleming 	asm volatile("xsaveopt (%rax)");
1677d8b167f9SMatt Fleming 	asm volatile("xsaveopt (%r8)");
1678d8b167f9SMatt Fleming 	asm volatile("mfence");
1679d8b167f9SMatt Fleming 
16801e5f0154SAdrian Hunter 	/* cldemote m8 */
16811e5f0154SAdrian Hunter 
16821e5f0154SAdrian Hunter 	asm volatile("cldemote (%rax)");
16831e5f0154SAdrian Hunter 	asm volatile("cldemote (%r8)");
16841e5f0154SAdrian Hunter 	asm volatile("cldemote (0x12345678)");
16851e5f0154SAdrian Hunter 	asm volatile("cldemote 0x12345678(%rax,%rcx,8)");
16861e5f0154SAdrian Hunter 	asm volatile("cldemote 0x12345678(%r8,%rcx,8)");
16871e5f0154SAdrian Hunter 
1688d8b167f9SMatt Fleming 	/* xsavec mem */
1689d8b167f9SMatt Fleming 
1690d8b167f9SMatt Fleming 	asm volatile("xsavec (%rax)");
1691d8b167f9SMatt Fleming 	asm volatile("xsavec (%r8)");
1692d8b167f9SMatt Fleming 	asm volatile("xsavec (0x12345678)");
1693d8b167f9SMatt Fleming 	asm volatile("xsavec 0x12345678(%rax,%rcx,8)");
1694d8b167f9SMatt Fleming 	asm volatile("xsavec 0x12345678(%r8,%rcx,8)");
1695d8b167f9SMatt Fleming 
1696d8b167f9SMatt Fleming 	/* xsaves mem */
1697d8b167f9SMatt Fleming 
1698d8b167f9SMatt Fleming 	asm volatile("xsaves (%rax)");
1699d8b167f9SMatt Fleming 	asm volatile("xsaves (%r8)");
1700d8b167f9SMatt Fleming 	asm volatile("xsaves (0x12345678)");
1701d8b167f9SMatt Fleming 	asm volatile("xsaves 0x12345678(%rax,%rcx,8)");
1702d8b167f9SMatt Fleming 	asm volatile("xsaves 0x12345678(%r8,%rcx,8)");
1703d8b167f9SMatt Fleming 
1704d8b167f9SMatt Fleming 	/* xrstors mem */
1705d8b167f9SMatt Fleming 
1706d8b167f9SMatt Fleming 	asm volatile("xrstors (%rax)");
1707d8b167f9SMatt Fleming 	asm volatile("xrstors (%r8)");
1708d8b167f9SMatt Fleming 	asm volatile("xrstors (0x12345678)");
1709d8b167f9SMatt Fleming 	asm volatile("xrstors 0x12345678(%rax,%rcx,8)");
1710d8b167f9SMatt Fleming 	asm volatile("xrstors 0x12345678(%r8,%rcx,8)");
1711d8b167f9SMatt Fleming 
1712d5b1a5f6SAdrian Hunter 	/* ptwrite */
1713d5b1a5f6SAdrian Hunter 
1714d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite (%rax)");
1715d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite (%r8)");
1716d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite (0x12345678)");
1717d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite 0x12345678(%rax,%rcx,8)");
1718d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite 0x12345678(%r8,%rcx,8)");
1719d5b1a5f6SAdrian Hunter 
1720d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel (%rax)");
1721d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel (%r8)");
1722d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel (0x12345678)");
1723d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel 0x12345678(%rax,%rcx,8)");
1724d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel 0x12345678(%r8,%rcx,8)");
1725d5b1a5f6SAdrian Hunter 
1726d5b1a5f6SAdrian Hunter 	asm volatile("ptwriteq (%rax)");
1727d5b1a5f6SAdrian Hunter 	asm volatile("ptwriteq (%r8)");
1728d5b1a5f6SAdrian Hunter 	asm volatile("ptwriteq (0x12345678)");
1729d5b1a5f6SAdrian Hunter 	asm volatile("ptwriteq 0x12345678(%rax,%rcx,8)");
1730d5b1a5f6SAdrian Hunter 	asm volatile("ptwriteq 0x12345678(%r8,%rcx,8)");
1731d5b1a5f6SAdrian Hunter 
17321e5f0154SAdrian Hunter 	/* tpause */
17331e5f0154SAdrian Hunter 
17341e5f0154SAdrian Hunter 	asm volatile("tpause %ebx");
17351e5f0154SAdrian Hunter 	asm volatile("tpause %r8d");
17361e5f0154SAdrian Hunter 
17371e5f0154SAdrian Hunter 	/* umonitor */
17381e5f0154SAdrian Hunter 
17391e5f0154SAdrian Hunter 	asm volatile("umonitor %eax");
17401e5f0154SAdrian Hunter 	asm volatile("umonitor %rax");
17411e5f0154SAdrian Hunter 	asm volatile("umonitor %r8d");
17421e5f0154SAdrian Hunter 
17431e5f0154SAdrian Hunter 	/* umwait */
17441e5f0154SAdrian Hunter 
17451e5f0154SAdrian Hunter 	asm volatile("umwait %eax");
17461e5f0154SAdrian Hunter 	asm volatile("umwait %r8d");
17471e5f0154SAdrian Hunter 
17481e5f0154SAdrian Hunter 	/* movdiri */
17491e5f0154SAdrian Hunter 
17501e5f0154SAdrian Hunter 	asm volatile("movdiri %rax,(%rbx)");
17511e5f0154SAdrian Hunter 	asm volatile("movdiri %rcx,0x12345678(%rax)");
17521e5f0154SAdrian Hunter 
17531e5f0154SAdrian Hunter 	/* movdir64b */
17541e5f0154SAdrian Hunter 
17551e5f0154SAdrian Hunter 	asm volatile("movdir64b (%rax),%rbx");
17561e5f0154SAdrian Hunter 	asm volatile("movdir64b 0x12345678(%rax),%rcx");
17571e5f0154SAdrian Hunter 	asm volatile("movdir64b (%eax),%ebx");
17581e5f0154SAdrian Hunter 	asm volatile("movdir64b 0x12345678(%eax),%ecx");
17591e5f0154SAdrian Hunter 
17601e5f0154SAdrian Hunter 	/* enqcmd */
17611e5f0154SAdrian Hunter 
17621e5f0154SAdrian Hunter 	asm volatile("enqcmd (%rax),%rbx");
17631e5f0154SAdrian Hunter 	asm volatile("enqcmd 0x12345678(%rax),%rcx");
17641e5f0154SAdrian Hunter 	asm volatile("enqcmd (%eax),%ebx");
17651e5f0154SAdrian Hunter 	asm volatile("enqcmd 0x12345678(%eax),%ecx");
17661e5f0154SAdrian Hunter 
17671e5f0154SAdrian Hunter 	/* enqcmds */
17681e5f0154SAdrian Hunter 
17691e5f0154SAdrian Hunter 	asm volatile("enqcmds (%rax),%rbx");
17701e5f0154SAdrian Hunter 	asm volatile("enqcmds 0x12345678(%rax),%rcx");
17711e5f0154SAdrian Hunter 	asm volatile("enqcmds (%eax),%ebx");
17721e5f0154SAdrian Hunter 	asm volatile("enqcmds 0x12345678(%eax),%ecx");
17731e5f0154SAdrian Hunter 
17741032f326SAdrian Hunter 	/* incsspd/q */
17751032f326SAdrian Hunter 
17761032f326SAdrian Hunter 	asm volatile("incsspd %eax");
17771032f326SAdrian Hunter 	asm volatile("incsspd %r8d");
17781032f326SAdrian Hunter 	asm volatile("incsspq %rax");
17791032f326SAdrian Hunter 	asm volatile("incsspq %r8");
17801032f326SAdrian Hunter 	/* Also check instructions in the same group encoding as incsspd/q */
17811032f326SAdrian Hunter 	asm volatile("xrstor (%rax)");
17821032f326SAdrian Hunter 	asm volatile("xrstor (%r8)");
17831032f326SAdrian Hunter 	asm volatile("xrstor (0x12345678)");
17841032f326SAdrian Hunter 	asm volatile("xrstor 0x12345678(%rax,%rcx,8)");
17851032f326SAdrian Hunter 	asm volatile("xrstor 0x12345678(%r8,%rcx,8)");
17861032f326SAdrian Hunter 	asm volatile("lfence");
17871032f326SAdrian Hunter 
17881032f326SAdrian Hunter 	/* rdsspd/q */
17891032f326SAdrian Hunter 
17901032f326SAdrian Hunter 	asm volatile("rdsspd %eax");
17911032f326SAdrian Hunter 	asm volatile("rdsspd %r8d");
17921032f326SAdrian Hunter 	asm volatile("rdsspq %rax");
17931032f326SAdrian Hunter 	asm volatile("rdsspq %r8");
17941032f326SAdrian Hunter 
17951032f326SAdrian Hunter 	/* saveprevssp */
17961032f326SAdrian Hunter 
17971032f326SAdrian Hunter 	asm volatile("saveprevssp");
17981032f326SAdrian Hunter 
17991032f326SAdrian Hunter 	/* rstorssp */
18001032f326SAdrian Hunter 
18011032f326SAdrian Hunter 	asm volatile("rstorssp (%rax)");
18021032f326SAdrian Hunter 	asm volatile("rstorssp (%r8)");
18031032f326SAdrian Hunter 	asm volatile("rstorssp (0x12345678)");
18041032f326SAdrian Hunter 	asm volatile("rstorssp 0x12345678(%rax,%rcx,8)");
18051032f326SAdrian Hunter 	asm volatile("rstorssp 0x12345678(%r8,%rcx,8)");
18061032f326SAdrian Hunter 
18071032f326SAdrian Hunter 	/* wrssd/q */
18081032f326SAdrian Hunter 
18091032f326SAdrian Hunter 	asm volatile("wrssd %ecx,(%rax)");
18101032f326SAdrian Hunter 	asm volatile("wrssd %edx,(%r8)");
18111032f326SAdrian Hunter 	asm volatile("wrssd %edx,(0x12345678)");
18121032f326SAdrian Hunter 	asm volatile("wrssd %edx,0x12345678(%rax,%rcx,8)");
18131032f326SAdrian Hunter 	asm volatile("wrssd %edx,0x12345678(%r8,%rcx,8)");
18141032f326SAdrian Hunter 	asm volatile("wrssq %rcx,(%rax)");
18151032f326SAdrian Hunter 	asm volatile("wrssq %rdx,(%r8)");
18161032f326SAdrian Hunter 	asm volatile("wrssq %rdx,(0x12345678)");
18171032f326SAdrian Hunter 	asm volatile("wrssq %rdx,0x12345678(%rax,%rcx,8)");
18181032f326SAdrian Hunter 	asm volatile("wrssq %rdx,0x12345678(%r8,%rcx,8)");
18191032f326SAdrian Hunter 
18201032f326SAdrian Hunter 	/* wrussd/q */
18211032f326SAdrian Hunter 
18221032f326SAdrian Hunter 	asm volatile("wrussd %ecx,(%rax)");
18231032f326SAdrian Hunter 	asm volatile("wrussd %edx,(%r8)");
18241032f326SAdrian Hunter 	asm volatile("wrussd %edx,(0x12345678)");
18251032f326SAdrian Hunter 	asm volatile("wrussd %edx,0x12345678(%rax,%rcx,8)");
18261032f326SAdrian Hunter 	asm volatile("wrussd %edx,0x12345678(%r8,%rcx,8)");
18271032f326SAdrian Hunter 	asm volatile("wrussq %rcx,(%rax)");
18281032f326SAdrian Hunter 	asm volatile("wrussq %rdx,(%r8)");
18291032f326SAdrian Hunter 	asm volatile("wrussq %rdx,(0x12345678)");
18301032f326SAdrian Hunter 	asm volatile("wrussq %rdx,0x12345678(%rax,%rcx,8)");
18311032f326SAdrian Hunter 	asm volatile("wrussq %rdx,0x12345678(%r8,%rcx,8)");
18321032f326SAdrian Hunter 
18331032f326SAdrian Hunter 	/* setssbsy */
18341032f326SAdrian Hunter 
18351032f326SAdrian Hunter 	asm volatile("setssbsy");
18361032f326SAdrian Hunter 	/* Also check instructions in the same group encoding as setssbsy */
18371032f326SAdrian Hunter 	asm volatile("rdpkru");
18381032f326SAdrian Hunter 	asm volatile("wrpkru");
18391032f326SAdrian Hunter 
18401032f326SAdrian Hunter 	/* clrssbsy */
18411032f326SAdrian Hunter 
18421032f326SAdrian Hunter 	asm volatile("clrssbsy (%rax)");
18431032f326SAdrian Hunter 	asm volatile("clrssbsy (%r8)");
18441032f326SAdrian Hunter 	asm volatile("clrssbsy (0x12345678)");
18451032f326SAdrian Hunter 	asm volatile("clrssbsy 0x12345678(%rax,%rcx,8)");
18461032f326SAdrian Hunter 	asm volatile("clrssbsy 0x12345678(%r8,%rcx,8)");
18471032f326SAdrian Hunter 
18481032f326SAdrian Hunter 	/* endbr32/64 */
18491032f326SAdrian Hunter 
18501032f326SAdrian Hunter 	asm volatile("endbr32");
18511032f326SAdrian Hunter 	asm volatile("endbr64");
18521032f326SAdrian Hunter 
18531032f326SAdrian Hunter 	/* call with/without notrack prefix */
18541032f326SAdrian Hunter 
18551032f326SAdrian Hunter 	asm volatile("callq *%rax");				/* Expecting: call indirect 0 */
18561032f326SAdrian Hunter 	asm volatile("callq *(%rax)");				/* Expecting: call indirect 0 */
18571032f326SAdrian Hunter 	asm volatile("callq *(%r8)");				/* Expecting: call indirect 0 */
18581032f326SAdrian Hunter 	asm volatile("callq *(0x12345678)");			/* Expecting: call indirect 0 */
18591032f326SAdrian Hunter 	asm volatile("callq *0x12345678(%rax,%rcx,8)");		/* Expecting: call indirect 0 */
18601032f326SAdrian Hunter 	asm volatile("callq *0x12345678(%r8,%rcx,8)");		/* Expecting: call indirect 0 */
18611032f326SAdrian Hunter 
18621032f326SAdrian Hunter 	asm volatile("bnd callq *%rax");			/* Expecting: call indirect 0 */
18631032f326SAdrian Hunter 	asm volatile("bnd callq *(%rax)");			/* Expecting: call indirect 0 */
18641032f326SAdrian Hunter 	asm volatile("bnd callq *(%r8)");			/* Expecting: call indirect 0 */
18651032f326SAdrian Hunter 	asm volatile("bnd callq *(0x12345678)");		/* Expecting: call indirect 0 */
18661032f326SAdrian Hunter 	asm volatile("bnd callq *0x12345678(%rax,%rcx,8)");	/* Expecting: call indirect 0 */
18671032f326SAdrian Hunter 	asm volatile("bnd callq *0x12345678(%r8,%rcx,8)");	/* Expecting: call indirect 0 */
18681032f326SAdrian Hunter 
18691032f326SAdrian Hunter 	asm volatile("notrack callq *%rax");			/* Expecting: call indirect 0 */
18701032f326SAdrian Hunter 	asm volatile("notrack callq *(%rax)");			/* Expecting: call indirect 0 */
18711032f326SAdrian Hunter 	asm volatile("notrack callq *(%r8)");			/* Expecting: call indirect 0 */
18721032f326SAdrian Hunter 	asm volatile("notrack callq *(0x12345678)");		/* Expecting: call indirect 0 */
18731032f326SAdrian Hunter 	asm volatile("notrack callq *0x12345678(%rax,%rcx,8)");	/* Expecting: call indirect 0 */
18741032f326SAdrian Hunter 	asm volatile("notrack callq *0x12345678(%r8,%rcx,8)");	/* Expecting: call indirect 0 */
18751032f326SAdrian Hunter 
18761032f326SAdrian Hunter 	asm volatile("notrack bnd callq *%rax");		/* Expecting: call indirect 0 */
18771032f326SAdrian Hunter 	asm volatile("notrack bnd callq *(%rax)");		/* Expecting: call indirect 0 */
18781032f326SAdrian Hunter 	asm volatile("notrack bnd callq *(%r8)");		/* Expecting: call indirect 0 */
18791032f326SAdrian Hunter 	asm volatile("notrack bnd callq *(0x12345678)");	/* Expecting: call indirect 0 */
18801032f326SAdrian Hunter 	asm volatile("notrack bnd callq *0x12345678(%rax,%rcx,8)");	/* Expecting: call indirect 0 */
18811032f326SAdrian Hunter 	asm volatile("notrack bnd callq *0x12345678(%r8,%rcx,8)");	/* Expecting: call indirect 0 */
18821032f326SAdrian Hunter 
18831032f326SAdrian Hunter 	/* jmp with/without notrack prefix */
18841032f326SAdrian Hunter 
18851032f326SAdrian Hunter 	asm volatile("jmpq *%rax");				/* Expecting: jmp indirect 0 */
18861032f326SAdrian Hunter 	asm volatile("jmpq *(%rax)");				/* Expecting: jmp indirect 0 */
18871032f326SAdrian Hunter 	asm volatile("jmpq *(%r8)");				/* Expecting: jmp indirect 0 */
18881032f326SAdrian Hunter 	asm volatile("jmpq *(0x12345678)");			/* Expecting: jmp indirect 0 */
18891032f326SAdrian Hunter 	asm volatile("jmpq *0x12345678(%rax,%rcx,8)");		/* Expecting: jmp indirect 0 */
18901032f326SAdrian Hunter 	asm volatile("jmpq *0x12345678(%r8,%rcx,8)");		/* Expecting: jmp indirect 0 */
18911032f326SAdrian Hunter 
18921032f326SAdrian Hunter 	asm volatile("bnd jmpq *%rax");				/* Expecting: jmp indirect 0 */
18931032f326SAdrian Hunter 	asm volatile("bnd jmpq *(%rax)");			/* Expecting: jmp indirect 0 */
18941032f326SAdrian Hunter 	asm volatile("bnd jmpq *(%r8)");			/* Expecting: jmp indirect 0 */
18951032f326SAdrian Hunter 	asm volatile("bnd jmpq *(0x12345678)");			/* Expecting: jmp indirect 0 */
18961032f326SAdrian Hunter 	asm volatile("bnd jmpq *0x12345678(%rax,%rcx,8)");	/* Expecting: jmp indirect 0 */
18971032f326SAdrian Hunter 	asm volatile("bnd jmpq *0x12345678(%r8,%rcx,8)");	/* Expecting: jmp indirect 0 */
18981032f326SAdrian Hunter 
18991032f326SAdrian Hunter 	asm volatile("notrack jmpq *%rax");			/* Expecting: jmp indirect 0 */
19001032f326SAdrian Hunter 	asm volatile("notrack jmpq *(%rax)");			/* Expecting: jmp indirect 0 */
19011032f326SAdrian Hunter 	asm volatile("notrack jmpq *(%r8)");			/* Expecting: jmp indirect 0 */
19021032f326SAdrian Hunter 	asm volatile("notrack jmpq *(0x12345678)");		/* Expecting: jmp indirect 0 */
19031032f326SAdrian Hunter 	asm volatile("notrack jmpq *0x12345678(%rax,%rcx,8)");	/* Expecting: jmp indirect 0 */
19041032f326SAdrian Hunter 	asm volatile("notrack jmpq *0x12345678(%r8,%rcx,8)");	/* Expecting: jmp indirect 0 */
19051032f326SAdrian Hunter 
19061032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *%rax");			/* Expecting: jmp indirect 0 */
19071032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *(%rax)");		/* Expecting: jmp indirect 0 */
19081032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *(%r8)");		/* Expecting: jmp indirect 0 */
19091032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *(0x12345678)");		/* Expecting: jmp indirect 0 */
19101032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *0x12345678(%rax,%rcx,8)");	/* Expecting: jmp indirect 0 */
19111032f326SAdrian Hunter 	asm volatile("notrack bnd jmpq *0x12345678(%r8,%rcx,8)");	/* Expecting: jmp indirect 0 */
19121032f326SAdrian Hunter 
19134810dd2cSAdrian Hunter 	/* AMX */
19144810dd2cSAdrian Hunter 
19154810dd2cSAdrian Hunter 	asm volatile("ldtilecfg (%rax,%rcx,8)");
19164810dd2cSAdrian Hunter 	asm volatile("ldtilecfg (%r8,%rcx,8)");
19174810dd2cSAdrian Hunter 	asm volatile("sttilecfg (%rax,%rcx,8)");
19184810dd2cSAdrian Hunter 	asm volatile("sttilecfg (%r8,%rcx,8)");
19194810dd2cSAdrian Hunter 	asm volatile("tdpbf16ps %tmm0, %tmm1, %tmm2");
19204810dd2cSAdrian Hunter 	asm volatile("tdpbssd %tmm0, %tmm1, %tmm2");
19214810dd2cSAdrian Hunter 	asm volatile("tdpbsud %tmm0, %tmm1, %tmm2");
19224810dd2cSAdrian Hunter 	asm volatile("tdpbusd %tmm0, %tmm1, %tmm2");
19234810dd2cSAdrian Hunter 	asm volatile("tdpbuud %tmm0, %tmm1, %tmm2");
19244810dd2cSAdrian Hunter 	asm volatile("tileloadd (%rax,%rcx,8), %tmm1");
19254810dd2cSAdrian Hunter 	asm volatile("tileloadd (%r8,%rcx,8), %tmm2");
19264810dd2cSAdrian Hunter 	asm volatile("tileloaddt1 (%rax,%rcx,8), %tmm1");
19274810dd2cSAdrian Hunter 	asm volatile("tileloaddt1 (%r8,%rcx,8), %tmm2");
19284810dd2cSAdrian Hunter 	asm volatile("tilerelease");
19294810dd2cSAdrian Hunter 	asm volatile("tilestored %tmm1, (%rax,%rcx,8)");
19304810dd2cSAdrian Hunter 	asm volatile("tilestored %tmm2, (%r8,%rcx,8)");
19314810dd2cSAdrian Hunter 	asm volatile("tilezero %tmm0");
19324810dd2cSAdrian Hunter 	asm volatile("tilezero %tmm7");
19334810dd2cSAdrian Hunter 
1934a6ea1142SAdrian Hunter 	/* User Interrupt */
1935a6ea1142SAdrian Hunter 
1936a6ea1142SAdrian Hunter 	asm volatile("clui");
1937a6ea1142SAdrian Hunter 	asm volatile("senduipi %rax");
1938a6ea1142SAdrian Hunter 	asm volatile("senduipi %r8");
1939a6ea1142SAdrian Hunter 	asm volatile("stui");
1940a6ea1142SAdrian Hunter 	asm volatile("testui");
1941a6ea1142SAdrian Hunter 	asm volatile("uiret");
1942a6ea1142SAdrian Hunter 
1943*cdb63ba9SAdrian Hunter 	/* AVX512-FP16 */
1944*cdb63ba9SAdrian Hunter 
1945*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %zmm3, %zmm2, %zmm1");
1946*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
1947*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
1948*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %xmm3, %xmm2, %xmm1");
1949*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
1950*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
1951*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %ymm3, %ymm2, %ymm1");
1952*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
1953*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
1954*cdb63ba9SAdrian Hunter 	asm volatile("vaddsh %xmm3, %xmm2, %xmm1");
1955*cdb63ba9SAdrian Hunter 	asm volatile("vaddsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
1956*cdb63ba9SAdrian Hunter 	asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
1957*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");
1958*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %zmm2, %k5");
1959*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");
1960*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");
1961*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");
1962*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
1963*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");
1964*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%rax,%rcx,8), %ymm2, %k5");
1965*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");
1966*cdb63ba9SAdrian Hunter 	asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");
1967*cdb63ba9SAdrian Hunter 	asm volatile("vcmpsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %k5");
1968*cdb63ba9SAdrian Hunter 	asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
1969*cdb63ba9SAdrian Hunter 	asm volatile("vcomish %xmm2, %xmm1");
1970*cdb63ba9SAdrian Hunter 	asm volatile("vcomish 0x12345678(%rax,%rcx,8), %xmm1");
1971*cdb63ba9SAdrian Hunter 	asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");
1972*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %zmm2, %ymm1");
1973*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph 0x12345678(%rax,%rcx,8), %ymm1");
1974*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");
1975*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %xmm2, %xmm1");
1976*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %ymm2, %xmm1");
1977*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %zmm2, %xmm1");
1978*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %xmm2, %xmm1");
1979*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %ymm2, %xmm1");
1980*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %ymm2, %zmm1");
1981*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %zmm1");
1982*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");
1983*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %xmm2, %xmm1");
1984*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %xmm1");
1985*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");
1986*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %xmm2, %ymm1");
1987*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%rax,%rcx,8), %ymm1");
1988*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");
1989*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %zmm1");
1990*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %zmm1");
1991*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");
1992*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %xmm1");
1993*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %xmm1");
1994*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");
1995*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %ymm1");
1996*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%rax,%rcx,8), %ymm1");
1997*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");
1998*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %ymm2, %zmm1");
1999*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %zmm1");
2000*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");
2001*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %xmm1");
2002*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");
2003*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
2004*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %ymm1");
2005*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");
2006*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
2007*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %xmm1");
2008*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %xmm1");
2009*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
2010*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %ymm1");
2011*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%rax,%rcx,8), %ymm1");
2012*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
2013*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %ymm2, %zmm1");
2014*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %zmm1");
2015*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");
2016*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %xmm2, %xmm1");
2017*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %xmm1");
2018*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");
2019*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %xmm2, %ymm1");
2020*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%rax,%rcx,8), %ymm1");
2021*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");
2022*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %zmm1");
2023*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %zmm1");
2024*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");
2025*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %xmm1");
2026*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %xmm1");
2027*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");
2028*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %ymm1");
2029*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%rax,%rcx,8), %ymm1");
2030*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");
2031*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %ymm2, %zmm1");
2032*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %zmm1");
2033*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");
2034*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %xmm2, %xmm1");
2035*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %xmm1");
2036*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");
2037*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %xmm2, %ymm1");
2038*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%rax,%rcx,8), %ymm1");
2039*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");
2040*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %zmm1");
2041*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %zmm1");
2042*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
2043*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %xmm1");
2044*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %xmm1");
2045*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
2046*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %ymm1");
2047*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%rax,%rcx,8), %ymm1");
2048*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
2049*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %zmm2, %zmm1");
2050*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %zmm1");
2051*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");
2052*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %xmm2, %xmm1");
2053*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %xmm1");
2054*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");
2055*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %ymm2, %ymm1");
2056*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%rax,%rcx,8), %ymm1");
2057*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");
2058*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %zmm2, %zmm1");
2059*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %zmm1");
2060*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");
2061*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %xmm2, %xmm1");
2062*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %xmm1");
2063*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");
2064*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %ymm2, %ymm1");
2065*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%rax,%rcx,8), %ymm1");
2066*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");
2067*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%rax,%rcx,8)");
2068*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");
2069*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");
2070*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%rax,%rcx,8)");
2071*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");
2072*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%rax,%rcx,8)");
2073*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");
2074*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
2075*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
2076*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
2077*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%rax,%rcx,8)");
2078*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");
2079*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
2080*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%rax,%rcx,8)");
2081*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");
2082*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %zmm2, %ymm1");
2083*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx 0x12345678(%rax,%rcx,8), %ymm1");
2084*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");
2085*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %xmm2, %xmm1");
2086*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %ymm2, %xmm1");
2087*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %zmm2, %xmm1");
2088*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %xmm2, %xmm1");
2089*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %ymm2, %xmm1");
2090*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2091*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2092*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");
2093*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %rax");
2094*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2095*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi %xmm1, %eax");
2096*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %eax");
2097*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");
2098*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi %xmm1, %rax");
2099*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi 0x12345678(%rax,%rcx,8), %rax");
2100*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %rax");
2101*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");
2102*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2103*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2104*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh %rax, %xmm2, %xmm1");
2105*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2106*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2107*cdb63ba9SAdrian Hunter 	asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");
2108*cdb63ba9SAdrian Hunter 	asm volatile("vcvtss2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2109*cdb63ba9SAdrian Hunter 	asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2110*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %ymm2, %zmm1");
2111*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %zmm1");
2112*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");
2113*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %xmm2, %xmm1");
2114*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %xmm1");
2115*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");
2116*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %xmm2, %ymm1");
2117*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%rax,%rcx,8), %ymm1");
2118*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");
2119*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %zmm1");
2120*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %zmm1");
2121*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");
2122*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %xmm1");
2123*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %xmm1");
2124*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");
2125*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %ymm1");
2126*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%rax,%rcx,8), %ymm1");
2127*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");
2128*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %ymm2, %zmm1");
2129*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %zmm1");
2130*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");
2131*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %xmm2, %xmm1");
2132*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %xmm1");
2133*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");
2134*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %xmm2, %ymm1");
2135*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%rax,%rcx,8), %ymm1");
2136*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");
2137*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %zmm1");
2138*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %zmm1");
2139*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
2140*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %xmm1");
2141*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %xmm1");
2142*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
2143*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %ymm1");
2144*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%rax,%rcx,8), %ymm1");
2145*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
2146*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %zmm2, %zmm1");
2147*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %zmm1");
2148*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");
2149*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %xmm2, %xmm1");
2150*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %xmm1");
2151*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");
2152*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %ymm2, %ymm1");
2153*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%rax,%rcx,8), %ymm1");
2154*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");
2155*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %zmm2, %zmm1");
2156*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %zmm1");
2157*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");
2158*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %xmm2, %xmm1");
2159*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %xmm1");
2160*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");
2161*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %ymm2, %ymm1");
2162*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%rax,%rcx,8), %ymm1");
2163*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");
2164*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si %xmm1, %eax");
2165*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %eax");
2166*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");
2167*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si %xmm1, %rax");
2168*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si 0x12345678(%rax,%rcx,8), %rax");
2169*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %rax");
2170*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi %xmm1, %eax");
2171*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %eax");
2172*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");
2173*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi %xmm1, %rax");
2174*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi 0x12345678(%rax,%rcx,8), %rax");
2175*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %rax");
2176*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %zmm2, %ymm1");
2177*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph 0x12345678(%rax,%rcx,8), %ymm1");
2178*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");
2179*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %xmm2, %xmm1");
2180*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %ymm2, %xmm1");
2181*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %zmm2, %xmm1");
2182*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %xmm2, %xmm1");
2183*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %ymm2, %xmm1");
2184*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");
2185*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2186*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2187*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh %rax, %xmm2, %xmm1");
2188*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2189*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2190*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %zmm2, %zmm1");
2191*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %zmm1");
2192*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");
2193*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %xmm2, %xmm1");
2194*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %xmm1");
2195*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");
2196*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %ymm2, %ymm1");
2197*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%rax,%rcx,8), %ymm1");
2198*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");
2199*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %zmm2, %zmm1");
2200*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %zmm1");
2201*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");
2202*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %xmm2, %xmm1");
2203*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %xmm1");
2204*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");
2205*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %ymm2, %ymm1");
2206*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%rax,%rcx,8), %ymm1");
2207*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");
2208*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %zmm3, %zmm2, %zmm1");
2209*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2210*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2211*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %xmm3, %xmm2, %xmm1");
2212*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2213*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2214*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %ymm3, %ymm2, %ymm1");
2215*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2216*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2217*cdb63ba9SAdrian Hunter 	asm volatile("vdivsh %xmm3, %xmm2, %xmm1");
2218*cdb63ba9SAdrian Hunter 	asm volatile("vdivsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2219*cdb63ba9SAdrian Hunter 	asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2220*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");
2221*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2222*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2223*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");
2224*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2225*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2226*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");
2227*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2228*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2229*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");
2230*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2231*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2232*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");
2233*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2234*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2235*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");
2236*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2237*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2238*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");
2239*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2240*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2241*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");
2242*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2243*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2244*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");
2245*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2246*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2247*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");
2248*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2249*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2250*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");
2251*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2252*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2253*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");
2254*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2255*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2256*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");
2257*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2258*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2259*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");
2260*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2261*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2262*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");
2263*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2264*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2265*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");
2266*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2267*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2268*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");
2269*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2270*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2271*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");
2272*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2273*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2274*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");
2275*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2276*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2277*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");
2278*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2279*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2280*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");
2281*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2282*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2283*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");
2284*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2285*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2286*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");
2287*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2288*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2289*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");
2290*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2291*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2292*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");
2293*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2294*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2295*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");
2296*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2297*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2298*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");
2299*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2300*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2301*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");
2302*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2303*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2304*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");
2305*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2306*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2307*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");
2308*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2309*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2310*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");
2311*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2312*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2313*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");
2314*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2315*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2316*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");
2317*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2318*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2319*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");
2320*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2321*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2322*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");
2323*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2324*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2325*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");
2326*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2327*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2328*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");
2329*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2330*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2331*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");
2332*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2333*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2334*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");
2335*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2336*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2337*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");
2338*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2339*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2340*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");
2341*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2342*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2343*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");
2344*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2345*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2346*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");
2347*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2348*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2349*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");
2350*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2351*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2352*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");
2353*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2354*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2355*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");
2356*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2357*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2358*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");
2359*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2360*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2361*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");
2362*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2363*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2364*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");
2365*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2366*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2367*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");
2368*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2369*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2370*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");
2371*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2372*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2373*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");
2374*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2375*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2376*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");
2377*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2378*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2379*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");
2380*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2381*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2382*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");
2383*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2384*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2385*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");
2386*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2387*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2388*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");
2389*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2390*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2391*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");
2392*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2393*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2394*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");
2395*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2396*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2397*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");
2398*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2399*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2400*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");
2401*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2402*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2403*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");
2404*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2405*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2406*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");
2407*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2408*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2409*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");
2410*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2411*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2412*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");
2413*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2414*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2415*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");
2416*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2417*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2418*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");
2419*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2420*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2421*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");
2422*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2423*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2424*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");
2425*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2426*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2427*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");
2428*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2429*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2430*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");
2431*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2432*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2433*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");
2434*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2435*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2436*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");
2437*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2438*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2439*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");
2440*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2441*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2442*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");
2443*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2444*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2445*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");
2446*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2447*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2448*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");
2449*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2450*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2451*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");
2452*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2453*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2454*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");
2455*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2456*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2457*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");
2458*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2459*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2460*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");
2461*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2462*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2463*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");
2464*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231sh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2465*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2466*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %zmm1, %k5");
2467*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %xmm1, %k5");
2468*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %ymm1, %k5");
2469*cdb63ba9SAdrian Hunter 	asm volatile("vfpclasssh $0x12, %xmm1, %k5");
2470*cdb63ba9SAdrian Hunter 	asm volatile("vfpclasssh $0x12, 0x12345678(%rax,%rcx,8), %k5");
2471*cdb63ba9SAdrian Hunter 	asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");
2472*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %zmm2, %zmm1");
2473*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %zmm1");
2474*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");
2475*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %xmm2, %xmm1");
2476*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %xmm1");
2477*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");
2478*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %ymm2, %ymm1");
2479*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%rax,%rcx,8), %ymm1");
2480*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");
2481*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");
2482*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2483*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2484*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %zmm2, %zmm1");
2485*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2486*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2487*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %xmm2, %xmm1");
2488*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2489*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2490*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %ymm2, %ymm1");
2491*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2492*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2493*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");
2494*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantsh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2495*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2496*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %zmm3, %zmm2, %zmm1");
2497*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2498*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2499*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %xmm3, %xmm2, %xmm1");
2500*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2501*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2502*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %ymm3, %ymm2, %ymm1");
2503*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2504*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2505*cdb63ba9SAdrian Hunter 	asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");
2506*cdb63ba9SAdrian Hunter 	asm volatile("vmaxsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2507*cdb63ba9SAdrian Hunter 	asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2508*cdb63ba9SAdrian Hunter 	asm volatile("vminph %zmm3, %zmm2, %zmm1");
2509*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2510*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2511*cdb63ba9SAdrian Hunter 	asm volatile("vminph %xmm3, %xmm2, %xmm1");
2512*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2513*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2514*cdb63ba9SAdrian Hunter 	asm volatile("vminph %ymm3, %ymm2, %ymm1");
2515*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2516*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2517*cdb63ba9SAdrian Hunter 	asm volatile("vminsh %xmm3, %xmm2, %xmm1");
2518*cdb63ba9SAdrian Hunter 	asm volatile("vminsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2519*cdb63ba9SAdrian Hunter 	asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2520*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh %xmm1, 0x12345678(%rax,%rcx,8)");
2521*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");
2522*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh 0x12345678(%rax,%rcx,8), %xmm1");
2523*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");
2524*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh %xmm3, %xmm2, %xmm1");
2525*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %xmm1, %eax");
2526*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %xmm1, 0x12345678(%rax,%rcx,8)");
2527*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");
2528*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %eax, %xmm1");
2529*cdb63ba9SAdrian Hunter 	asm volatile("vmovw 0x12345678(%rax,%rcx,8), %xmm1");
2530*cdb63ba9SAdrian Hunter 	asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");
2531*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %zmm3, %zmm2, %zmm1");
2532*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2533*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2534*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %xmm3, %xmm2, %xmm1");
2535*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2536*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2537*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %ymm3, %ymm2, %ymm1");
2538*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2539*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2540*cdb63ba9SAdrian Hunter 	asm volatile("vmulsh %xmm3, %xmm2, %xmm1");
2541*cdb63ba9SAdrian Hunter 	asm volatile("vmulsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2542*cdb63ba9SAdrian Hunter 	asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2543*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %zmm2, %zmm1");
2544*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %zmm1");
2545*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");
2546*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %xmm2, %xmm1");
2547*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %xmm1");
2548*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");
2549*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %ymm2, %ymm1");
2550*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%rax,%rcx,8), %ymm1");
2551*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");
2552*cdb63ba9SAdrian Hunter 	asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");
2553*cdb63ba9SAdrian Hunter 	asm volatile("vrcpsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2554*cdb63ba9SAdrian Hunter 	asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2555*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %zmm2, %zmm1");
2556*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2557*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2558*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %xmm2, %xmm1");
2559*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2560*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2561*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %ymm2, %ymm1");
2562*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2563*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2564*cdb63ba9SAdrian Hunter 	asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");
2565*cdb63ba9SAdrian Hunter 	asm volatile("vreducesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2566*cdb63ba9SAdrian Hunter 	asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2567*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");
2568*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %zmm1");
2569*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
2570*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");
2571*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %xmm1");
2572*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
2573*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");
2574*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%rax,%rcx,8), %ymm1");
2575*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
2576*cdb63ba9SAdrian Hunter 	asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");
2577*cdb63ba9SAdrian Hunter 	asm volatile("vrndscalesh $0x12, 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2578*cdb63ba9SAdrian Hunter 	asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2579*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %zmm2, %zmm1");
2580*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %zmm1");
2581*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
2582*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %xmm2, %xmm1");
2583*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %xmm1");
2584*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
2585*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %ymm2, %ymm1");
2586*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%rax,%rcx,8), %ymm1");
2587*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
2588*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");
2589*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2590*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2591*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %zmm3, %zmm2, %zmm1");
2592*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2593*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2594*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %xmm3, %xmm2, %xmm1");
2595*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2596*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2597*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %ymm3, %ymm2, %ymm1");
2598*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2599*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2600*cdb63ba9SAdrian Hunter 	asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");
2601*cdb63ba9SAdrian Hunter 	asm volatile("vscalefsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2602*cdb63ba9SAdrian Hunter 	asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2603*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %zmm2, %zmm1");
2604*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %zmm1");
2605*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
2606*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %xmm2, %xmm1");
2607*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %xmm1");
2608*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
2609*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %ymm2, %ymm1");
2610*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%rax,%rcx,8), %ymm1");
2611*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
2612*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");
2613*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2614*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2615*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %zmm3, %zmm2, %zmm1");
2616*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%rax,%rcx,8), %zmm2, %zmm1");
2617*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
2618*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %xmm3, %xmm2, %xmm1");
2619*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2620*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2621*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %ymm3, %ymm2, %ymm1");
2622*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%rax,%rcx,8), %ymm2, %ymm1");
2623*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
2624*cdb63ba9SAdrian Hunter 	asm volatile("vsubsh %xmm3, %xmm2, %xmm1");
2625*cdb63ba9SAdrian Hunter 	asm volatile("vsubsh 0x12345678(%rax,%rcx,8), %xmm2, %xmm1");
2626*cdb63ba9SAdrian Hunter 	asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
2627*cdb63ba9SAdrian Hunter 	asm volatile("vucomish %xmm2, %xmm1");
2628*cdb63ba9SAdrian Hunter 	asm volatile("vucomish 0x12345678(%rax,%rcx,8), %xmm1");
2629*cdb63ba9SAdrian Hunter 	asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");
2630*cdb63ba9SAdrian Hunter 
2631d8b167f9SMatt Fleming #else  /* #ifdef __x86_64__ */
2632d8b167f9SMatt Fleming 
26336c4d0b41SAdrian Hunter 	/* bound r32, mem (same op code as EVEX prefix) */
26346c4d0b41SAdrian Hunter 
26356c4d0b41SAdrian Hunter 	asm volatile("bound %eax, 0x12345678(%ecx)");
26366c4d0b41SAdrian Hunter 	asm volatile("bound %ecx, 0x12345678(%eax)");
26376c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%eax)");
26386c4d0b41SAdrian Hunter 	asm volatile("bound %ebx, 0x12345678(%eax)");
26396c4d0b41SAdrian Hunter 	asm volatile("bound %esp, 0x12345678(%eax)");
26406c4d0b41SAdrian Hunter 	asm volatile("bound %ebp, 0x12345678(%eax)");
26416c4d0b41SAdrian Hunter 	asm volatile("bound %esi, 0x12345678(%eax)");
26426c4d0b41SAdrian Hunter 	asm volatile("bound %edi, 0x12345678(%eax)");
26436c4d0b41SAdrian Hunter 	asm volatile("bound %ecx, (%eax)");
26446c4d0b41SAdrian Hunter 	asm volatile("bound %eax, (0x12345678)");
26456c4d0b41SAdrian Hunter 	asm volatile("bound %edx, (%ecx,%eax,1)");
26466c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(,%eax,1)");
26476c4d0b41SAdrian Hunter 	asm volatile("bound %edx, (%eax,%ecx,1)");
26486c4d0b41SAdrian Hunter 	asm volatile("bound %edx, (%eax,%ecx,8)");
26496c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%eax)");
26506c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%ebp)");
26516c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%ecx,%eax,1)");
26526c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%ebp,%eax,1)");
26536c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%eax,%ecx,1)");
26546c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12(%eax,%ecx,8)");
26556c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%eax)");
26566c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%ebp)");
26576c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%ecx,%eax,1)");
26586c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%ebp,%eax,1)");
26596c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%eax,%ecx,1)");
26606c4d0b41SAdrian Hunter 	asm volatile("bound %edx, 0x12345678(%eax,%ecx,8)");
26616c4d0b41SAdrian Hunter 
26626c4d0b41SAdrian Hunter 	/* bound r16, mem (same op code as EVEX prefix) */
26636c4d0b41SAdrian Hunter 
26646c4d0b41SAdrian Hunter 	asm volatile("bound %ax, 0x12345678(%ecx)");
26656c4d0b41SAdrian Hunter 	asm volatile("bound %cx, 0x12345678(%eax)");
26666c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%eax)");
26676c4d0b41SAdrian Hunter 	asm volatile("bound %bx, 0x12345678(%eax)");
26686c4d0b41SAdrian Hunter 	asm volatile("bound %sp, 0x12345678(%eax)");
26696c4d0b41SAdrian Hunter 	asm volatile("bound %bp, 0x12345678(%eax)");
26706c4d0b41SAdrian Hunter 	asm volatile("bound %si, 0x12345678(%eax)");
26716c4d0b41SAdrian Hunter 	asm volatile("bound %di, 0x12345678(%eax)");
26726c4d0b41SAdrian Hunter 	asm volatile("bound %cx, (%eax)");
26736c4d0b41SAdrian Hunter 	asm volatile("bound %ax, (0x12345678)");
26746c4d0b41SAdrian Hunter 	asm volatile("bound %dx, (%ecx,%eax,1)");
26756c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(,%eax,1)");
26766c4d0b41SAdrian Hunter 	asm volatile("bound %dx, (%eax,%ecx,1)");
26776c4d0b41SAdrian Hunter 	asm volatile("bound %dx, (%eax,%ecx,8)");
26786c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%eax)");
26796c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%ebp)");
26806c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%ecx,%eax,1)");
26816c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%ebp,%eax,1)");
26826c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%eax,%ecx,1)");
26836c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12(%eax,%ecx,8)");
26846c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%eax)");
26856c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%ebp)");
26866c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%ecx,%eax,1)");
26876c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%ebp,%eax,1)");
26886c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%eax,%ecx,1)");
26896c4d0b41SAdrian Hunter 	asm volatile("bound %dx, 0x12345678(%eax,%ecx,8)");
26906c4d0b41SAdrian Hunter 
26916c4d0b41SAdrian Hunter 	/* AVX-512: Instructions with the same op codes as Mask Instructions  */
26926c4d0b41SAdrian Hunter 
26936c4d0b41SAdrian Hunter 	asm volatile("cmovno %eax,%ebx");
26946c4d0b41SAdrian Hunter 	asm volatile("cmovno 0x12345678(%eax),%ecx");
26956c4d0b41SAdrian Hunter 	asm volatile("cmovno 0x12345678(%eax),%cx");
26966c4d0b41SAdrian Hunter 
26976c4d0b41SAdrian Hunter 	asm volatile("cmove  %eax,%ebx");
26986c4d0b41SAdrian Hunter 	asm volatile("cmove 0x12345678(%eax),%ecx");
26996c4d0b41SAdrian Hunter 	asm volatile("cmove 0x12345678(%eax),%cx");
27006c4d0b41SAdrian Hunter 
27016c4d0b41SAdrian Hunter 	asm volatile("seto    0x12345678(%eax)");
27026c4d0b41SAdrian Hunter 	asm volatile("setno   0x12345678(%eax)");
27036c4d0b41SAdrian Hunter 	asm volatile("setb    0x12345678(%eax)");
27046c4d0b41SAdrian Hunter 	asm volatile("setc    0x12345678(%eax)");
27056c4d0b41SAdrian Hunter 	asm volatile("setnae  0x12345678(%eax)");
27066c4d0b41SAdrian Hunter 	asm volatile("setae   0x12345678(%eax)");
27076c4d0b41SAdrian Hunter 	asm volatile("setnb   0x12345678(%eax)");
27086c4d0b41SAdrian Hunter 	asm volatile("setnc   0x12345678(%eax)");
27096c4d0b41SAdrian Hunter 	asm volatile("sets    0x12345678(%eax)");
27106c4d0b41SAdrian Hunter 	asm volatile("setns   0x12345678(%eax)");
27116c4d0b41SAdrian Hunter 
27126c4d0b41SAdrian Hunter 	/* AVX-512: Mask Instructions */
27136c4d0b41SAdrian Hunter 
27146c4d0b41SAdrian Hunter 	asm volatile("kandw  %k7,%k6,%k5");
27156c4d0b41SAdrian Hunter 	asm volatile("kandq  %k7,%k6,%k5");
27166c4d0b41SAdrian Hunter 	asm volatile("kandb  %k7,%k6,%k5");
27176c4d0b41SAdrian Hunter 	asm volatile("kandd  %k7,%k6,%k5");
27186c4d0b41SAdrian Hunter 
27196c4d0b41SAdrian Hunter 	asm volatile("kandnw  %k7,%k6,%k5");
27206c4d0b41SAdrian Hunter 	asm volatile("kandnq  %k7,%k6,%k5");
27216c4d0b41SAdrian Hunter 	asm volatile("kandnb  %k7,%k6,%k5");
27226c4d0b41SAdrian Hunter 	asm volatile("kandnd  %k7,%k6,%k5");
27236c4d0b41SAdrian Hunter 
27246c4d0b41SAdrian Hunter 	asm volatile("knotw  %k7,%k6");
27256c4d0b41SAdrian Hunter 	asm volatile("knotq  %k7,%k6");
27266c4d0b41SAdrian Hunter 	asm volatile("knotb  %k7,%k6");
27276c4d0b41SAdrian Hunter 	asm volatile("knotd  %k7,%k6");
27286c4d0b41SAdrian Hunter 
27296c4d0b41SAdrian Hunter 	asm volatile("korw  %k7,%k6,%k5");
27306c4d0b41SAdrian Hunter 	asm volatile("korq  %k7,%k6,%k5");
27316c4d0b41SAdrian Hunter 	asm volatile("korb  %k7,%k6,%k5");
27326c4d0b41SAdrian Hunter 	asm volatile("kord  %k7,%k6,%k5");
27336c4d0b41SAdrian Hunter 
27346c4d0b41SAdrian Hunter 	asm volatile("kxnorw  %k7,%k6,%k5");
27356c4d0b41SAdrian Hunter 	asm volatile("kxnorq  %k7,%k6,%k5");
27366c4d0b41SAdrian Hunter 	asm volatile("kxnorb  %k7,%k6,%k5");
27376c4d0b41SAdrian Hunter 	asm volatile("kxnord  %k7,%k6,%k5");
27386c4d0b41SAdrian Hunter 
27396c4d0b41SAdrian Hunter 	asm volatile("kxorw  %k7,%k6,%k5");
27406c4d0b41SAdrian Hunter 	asm volatile("kxorq  %k7,%k6,%k5");
27416c4d0b41SAdrian Hunter 	asm volatile("kxorb  %k7,%k6,%k5");
27426c4d0b41SAdrian Hunter 	asm volatile("kxord  %k7,%k6,%k5");
27436c4d0b41SAdrian Hunter 
27446c4d0b41SAdrian Hunter 	asm volatile("kaddw  %k7,%k6,%k5");
27456c4d0b41SAdrian Hunter 	asm volatile("kaddq  %k7,%k6,%k5");
27466c4d0b41SAdrian Hunter 	asm volatile("kaddb  %k7,%k6,%k5");
27476c4d0b41SAdrian Hunter 	asm volatile("kaddd  %k7,%k6,%k5");
27486c4d0b41SAdrian Hunter 
27496c4d0b41SAdrian Hunter 	asm volatile("kunpckbw %k7,%k6,%k5");
27506c4d0b41SAdrian Hunter 	asm volatile("kunpckwd %k7,%k6,%k5");
27516c4d0b41SAdrian Hunter 	asm volatile("kunpckdq %k7,%k6,%k5");
27526c4d0b41SAdrian Hunter 
27536c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k6,%k5");
27546c4d0b41SAdrian Hunter 	asm volatile("kmovw  (%ecx),%k5");
27556c4d0b41SAdrian Hunter 	asm volatile("kmovw  0x123(%eax,%ecx,8),%k5");
27566c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,(%ecx)");
27576c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,0x123(%eax,%ecx,8)");
27586c4d0b41SAdrian Hunter 	asm volatile("kmovw  %eax,%k5");
27596c4d0b41SAdrian Hunter 	asm volatile("kmovw  %ebp,%k5");
27606c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,%eax");
27616c4d0b41SAdrian Hunter 	asm volatile("kmovw  %k5,%ebp");
27626c4d0b41SAdrian Hunter 
27636c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k6,%k5");
27646c4d0b41SAdrian Hunter 	asm volatile("kmovq  (%ecx),%k5");
27656c4d0b41SAdrian Hunter 	asm volatile("kmovq  0x123(%eax,%ecx,8),%k5");
27666c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,(%ecx)");
27676c4d0b41SAdrian Hunter 	asm volatile("kmovq  %k5,0x123(%eax,%ecx,8)");
27686c4d0b41SAdrian Hunter 
27696c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k6,%k5");
27706c4d0b41SAdrian Hunter 	asm volatile("kmovb  (%ecx),%k5");
27716c4d0b41SAdrian Hunter 	asm volatile("kmovb  0x123(%eax,%ecx,8),%k5");
27726c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,(%ecx)");
27736c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,0x123(%eax,%ecx,8)");
27746c4d0b41SAdrian Hunter 	asm volatile("kmovb  %eax,%k5");
27756c4d0b41SAdrian Hunter 	asm volatile("kmovb  %ebp,%k5");
27766c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,%eax");
27776c4d0b41SAdrian Hunter 	asm volatile("kmovb  %k5,%ebp");
27786c4d0b41SAdrian Hunter 
27796c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k6,%k5");
27806c4d0b41SAdrian Hunter 	asm volatile("kmovd  (%ecx),%k5");
27816c4d0b41SAdrian Hunter 	asm volatile("kmovd  0x123(%eax,%ecx,8),%k5");
27826c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,(%ecx)");
27836c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,0x123(%eax,%ecx,8)");
27846c4d0b41SAdrian Hunter 	asm volatile("kmovd  %eax,%k5");
27856c4d0b41SAdrian Hunter 	asm volatile("kmovd  %ebp,%k5");
27866c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,%eax");
27876c4d0b41SAdrian Hunter 	asm volatile("kmovd  %k5,%ebp");
27886c4d0b41SAdrian Hunter 
27896c4d0b41SAdrian Hunter 	asm volatile("kortestw %k6,%k5");
27906c4d0b41SAdrian Hunter 	asm volatile("kortestq %k6,%k5");
27916c4d0b41SAdrian Hunter 	asm volatile("kortestb %k6,%k5");
27926c4d0b41SAdrian Hunter 	asm volatile("kortestd %k6,%k5");
27936c4d0b41SAdrian Hunter 
27946c4d0b41SAdrian Hunter 	asm volatile("ktestw %k6,%k5");
27956c4d0b41SAdrian Hunter 	asm volatile("ktestq %k6,%k5");
27966c4d0b41SAdrian Hunter 	asm volatile("ktestb %k6,%k5");
27976c4d0b41SAdrian Hunter 	asm volatile("ktestd %k6,%k5");
27986c4d0b41SAdrian Hunter 
27996c4d0b41SAdrian Hunter 	asm volatile("kshiftrw $0x12,%k6,%k5");
28006c4d0b41SAdrian Hunter 	asm volatile("kshiftrq $0x5b,%k6,%k5");
28016c4d0b41SAdrian Hunter 	asm volatile("kshiftlw $0x12,%k6,%k5");
28026c4d0b41SAdrian Hunter 	asm volatile("kshiftlq $0x5b,%k6,%k5");
28036c4d0b41SAdrian Hunter 
28046c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 5b */
28056c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2ps %xmm5,%xmm6");
28066c4d0b41SAdrian Hunter 	asm volatile("vcvtqq2ps %zmm5,%ymm6{%k7}");
28076c4d0b41SAdrian Hunter 	asm volatile("vcvtps2dq %xmm5,%xmm6");
28086c4d0b41SAdrian Hunter 	asm volatile("vcvttps2dq %xmm5,%xmm6");
28096c4d0b41SAdrian Hunter 
28106c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 6f */
28116c4d0b41SAdrian Hunter 
28126c4d0b41SAdrian Hunter 	asm volatile("movq   %mm0,%mm4");
28136c4d0b41SAdrian Hunter 	asm volatile("vmovdqa %ymm4,%ymm6");
28146c4d0b41SAdrian Hunter 	asm volatile("vmovdqa32 %zmm5,%zmm6");
28156c4d0b41SAdrian Hunter 	asm volatile("vmovdqa64 %zmm5,%zmm6");
28166c4d0b41SAdrian Hunter 	asm volatile("vmovdqu %ymm4,%ymm6");
28176c4d0b41SAdrian Hunter 	asm volatile("vmovdqu32 %zmm5,%zmm6");
28186c4d0b41SAdrian Hunter 	asm volatile("vmovdqu64 %zmm5,%zmm6");
28196c4d0b41SAdrian Hunter 	asm volatile("vmovdqu8 %zmm5,%zmm6");
28206c4d0b41SAdrian Hunter 	asm volatile("vmovdqu16 %zmm5,%zmm6");
28216c4d0b41SAdrian Hunter 
28226c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 78 */
28236c4d0b41SAdrian Hunter 
28246c4d0b41SAdrian Hunter 	asm volatile("vmread %eax,%ebx");
28256c4d0b41SAdrian Hunter 	asm volatile("vcvttps2udq %zmm5,%zmm6");
28266c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2udq %zmm5,%ymm6{%k7}");
28276c4d0b41SAdrian Hunter 	asm volatile("vcvttsd2usi %xmm6,%eax");
28286c4d0b41SAdrian Hunter 	asm volatile("vcvttss2usi %xmm6,%eax");
28296c4d0b41SAdrian Hunter 	asm volatile("vcvttps2uqq %ymm5,%zmm6{%k7}");
28306c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2uqq %zmm5,%zmm6");
28316c4d0b41SAdrian Hunter 
28326c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 79 */
28336c4d0b41SAdrian Hunter 
28346c4d0b41SAdrian Hunter 	asm volatile("vmwrite %eax,%ebx");
28356c4d0b41SAdrian Hunter 	asm volatile("vcvtps2udq %zmm5,%zmm6");
28366c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2udq %zmm5,%ymm6{%k7}");
28376c4d0b41SAdrian Hunter 	asm volatile("vcvtsd2usi %xmm6,%eax");
28386c4d0b41SAdrian Hunter 	asm volatile("vcvtss2usi %xmm6,%eax");
28396c4d0b41SAdrian Hunter 	asm volatile("vcvtps2uqq %ymm5,%zmm6{%k7}");
28406c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2uqq %zmm5,%zmm6");
28416c4d0b41SAdrian Hunter 
28426c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7a */
28436c4d0b41SAdrian Hunter 
28446c4d0b41SAdrian Hunter 	asm volatile("vcvtudq2pd %ymm5,%zmm6{%k7}");
28456c4d0b41SAdrian Hunter 	asm volatile("vcvtuqq2pd %zmm5,%zmm6");
28466c4d0b41SAdrian Hunter 	asm volatile("vcvtudq2ps %zmm5,%zmm6");
28476c4d0b41SAdrian Hunter 	asm volatile("vcvtuqq2ps %zmm5,%ymm6{%k7}");
28486c4d0b41SAdrian Hunter 	asm volatile("vcvttps2qq %ymm5,%zmm6{%k7}");
28496c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2qq %zmm5,%zmm6");
28506c4d0b41SAdrian Hunter 
28516c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7b */
28526c4d0b41SAdrian Hunter 
28536c4d0b41SAdrian Hunter 	asm volatile("vcvtusi2sd %eax,%xmm5,%xmm6");
28546c4d0b41SAdrian Hunter 	asm volatile("vcvtusi2ss %eax,%xmm5,%xmm6");
28556c4d0b41SAdrian Hunter 	asm volatile("vcvtps2qq %ymm5,%zmm6{%k7}");
28566c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2qq %zmm5,%zmm6");
28576c4d0b41SAdrian Hunter 
28586c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 7f */
28596c4d0b41SAdrian Hunter 
28606c4d0b41SAdrian Hunter 	asm volatile("movq.s  %mm0,%mm4");
28616c4d0b41SAdrian Hunter 	asm volatile("vmovdqa.s %ymm5,%ymm6");
28626c4d0b41SAdrian Hunter 	asm volatile("vmovdqa32.s %zmm5,%zmm6");
28636c4d0b41SAdrian Hunter 	asm volatile("vmovdqa64.s %zmm5,%zmm6");
28646c4d0b41SAdrian Hunter 	asm volatile("vmovdqu.s %ymm5,%ymm6");
28656c4d0b41SAdrian Hunter 	asm volatile("vmovdqu32.s %zmm5,%zmm6");
28666c4d0b41SAdrian Hunter 	asm volatile("vmovdqu64.s %zmm5,%zmm6");
28676c4d0b41SAdrian Hunter 	asm volatile("vmovdqu8.s %zmm5,%zmm6");
28686c4d0b41SAdrian Hunter 	asm volatile("vmovdqu16.s %zmm5,%zmm6");
28696c4d0b41SAdrian Hunter 
28706c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f db */
28716c4d0b41SAdrian Hunter 
28726c4d0b41SAdrian Hunter 	asm volatile("pand  %mm1,%mm2");
28736c4d0b41SAdrian Hunter 	asm volatile("pand  %xmm1,%xmm2");
28746c4d0b41SAdrian Hunter 	asm volatile("vpand  %ymm4,%ymm6,%ymm2");
28756c4d0b41SAdrian Hunter 	asm volatile("vpandd %zmm4,%zmm5,%zmm6");
28766c4d0b41SAdrian Hunter 	asm volatile("vpandq %zmm4,%zmm5,%zmm6");
28776c4d0b41SAdrian Hunter 
28786c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f df */
28796c4d0b41SAdrian Hunter 
28806c4d0b41SAdrian Hunter 	asm volatile("pandn  %mm1,%mm2");
28816c4d0b41SAdrian Hunter 	asm volatile("pandn  %xmm1,%xmm2");
28826c4d0b41SAdrian Hunter 	asm volatile("vpandn %ymm4,%ymm6,%ymm2");
28836c4d0b41SAdrian Hunter 	asm volatile("vpandnd %zmm4,%zmm5,%zmm6");
28846c4d0b41SAdrian Hunter 	asm volatile("vpandnq %zmm4,%zmm5,%zmm6");
28856c4d0b41SAdrian Hunter 
28866c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f e6 */
28876c4d0b41SAdrian Hunter 
28886c4d0b41SAdrian Hunter 	asm volatile("vcvttpd2dq %xmm1,%xmm2");
28896c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2pd %xmm5,%xmm6");
28906c4d0b41SAdrian Hunter 	asm volatile("vcvtdq2pd %ymm5,%zmm6{%k7}");
28916c4d0b41SAdrian Hunter 	asm volatile("vcvtqq2pd %zmm5,%zmm6");
28926c4d0b41SAdrian Hunter 	asm volatile("vcvtpd2dq %xmm1,%xmm2");
28936c4d0b41SAdrian Hunter 
28946c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f eb */
28956c4d0b41SAdrian Hunter 
28966c4d0b41SAdrian Hunter 	asm volatile("por   %mm4,%mm6");
28976c4d0b41SAdrian Hunter 	asm volatile("vpor   %ymm4,%ymm6,%ymm2");
28986c4d0b41SAdrian Hunter 	asm volatile("vpord  %zmm4,%zmm5,%zmm6");
28996c4d0b41SAdrian Hunter 	asm volatile("vporq  %zmm4,%zmm5,%zmm6");
29006c4d0b41SAdrian Hunter 
29016c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f ef */
29026c4d0b41SAdrian Hunter 
29036c4d0b41SAdrian Hunter 	asm volatile("pxor   %mm4,%mm6");
29046c4d0b41SAdrian Hunter 	asm volatile("vpxor  %ymm4,%ymm6,%ymm2");
29056c4d0b41SAdrian Hunter 	asm volatile("vpxord %zmm4,%zmm5,%zmm6");
29066c4d0b41SAdrian Hunter 	asm volatile("vpxorq %zmm4,%zmm5,%zmm6");
29076c4d0b41SAdrian Hunter 
29086c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 10 */
29096c4d0b41SAdrian Hunter 
29106c4d0b41SAdrian Hunter 	asm volatile("pblendvb %xmm1,%xmm0");
29116c4d0b41SAdrian Hunter 	asm volatile("vpsrlvw %zmm4,%zmm5,%zmm6");
29126c4d0b41SAdrian Hunter 	asm volatile("vpmovuswb %zmm5,%ymm6{%k7}");
29136c4d0b41SAdrian Hunter 
29146c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 11 */
29156c4d0b41SAdrian Hunter 
29166c4d0b41SAdrian Hunter 	asm volatile("vpmovusdb %zmm5,%xmm6{%k7}");
29176c4d0b41SAdrian Hunter 	asm volatile("vpsravw %zmm4,%zmm5,%zmm6");
29186c4d0b41SAdrian Hunter 
29196c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 12 */
29206c4d0b41SAdrian Hunter 
29216c4d0b41SAdrian Hunter 	asm volatile("vpmovusqb %zmm5,%xmm6{%k7}");
29226c4d0b41SAdrian Hunter 	asm volatile("vpsllvw %zmm4,%zmm5,%zmm6");
29236c4d0b41SAdrian Hunter 
29246c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 13 */
29256c4d0b41SAdrian Hunter 
29266c4d0b41SAdrian Hunter 	asm volatile("vcvtph2ps %xmm3,%ymm5");
29276c4d0b41SAdrian Hunter 	asm volatile("vcvtph2ps %ymm5,%zmm6{%k7}");
29286c4d0b41SAdrian Hunter 	asm volatile("vpmovusdw %zmm5,%ymm6{%k7}");
29296c4d0b41SAdrian Hunter 
29306c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 14 */
29316c4d0b41SAdrian Hunter 
29326c4d0b41SAdrian Hunter 	asm volatile("blendvps %xmm1,%xmm0");
29336c4d0b41SAdrian Hunter 	asm volatile("vpmovusqw %zmm5,%xmm6{%k7}");
29346c4d0b41SAdrian Hunter 	asm volatile("vprorvd %zmm4,%zmm5,%zmm6");
29356c4d0b41SAdrian Hunter 	asm volatile("vprorvq %zmm4,%zmm5,%zmm6");
29366c4d0b41SAdrian Hunter 
29376c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 15 */
29386c4d0b41SAdrian Hunter 
29396c4d0b41SAdrian Hunter 	asm volatile("blendvpd %xmm1,%xmm0");
29406c4d0b41SAdrian Hunter 	asm volatile("vpmovusqd %zmm5,%ymm6{%k7}");
29416c4d0b41SAdrian Hunter 	asm volatile("vprolvd %zmm4,%zmm5,%zmm6");
29426c4d0b41SAdrian Hunter 	asm volatile("vprolvq %zmm4,%zmm5,%zmm6");
29436c4d0b41SAdrian Hunter 
29446c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 16 */
29456c4d0b41SAdrian Hunter 
29466c4d0b41SAdrian Hunter 	asm volatile("vpermps %ymm4,%ymm6,%ymm2");
29476c4d0b41SAdrian Hunter 	asm volatile("vpermps %ymm4,%ymm6,%ymm2{%k7}");
29486c4d0b41SAdrian Hunter 	asm volatile("vpermpd %ymm4,%ymm6,%ymm2{%k7}");
29496c4d0b41SAdrian Hunter 
29506c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 19 */
29516c4d0b41SAdrian Hunter 
29526c4d0b41SAdrian Hunter 	asm volatile("vbroadcastsd %xmm4,%ymm6");
29536c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x2 %xmm7,%zmm6");
29546c4d0b41SAdrian Hunter 
29556c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1a */
29566c4d0b41SAdrian Hunter 
29576c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf128 (%ecx),%ymm4");
29586c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x4 (%ecx),%zmm6");
29596c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf64x2 (%ecx),%zmm6");
29606c4d0b41SAdrian Hunter 
29616c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1b */
29626c4d0b41SAdrian Hunter 
29636c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf32x8 (%ecx),%zmm6");
29646c4d0b41SAdrian Hunter 	asm volatile("vbroadcastf64x4 (%ecx),%zmm6");
29656c4d0b41SAdrian Hunter 
29666c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 1f */
29676c4d0b41SAdrian Hunter 
29686c4d0b41SAdrian Hunter 	asm volatile("vpabsq %zmm4,%zmm6");
29696c4d0b41SAdrian Hunter 
29706c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 20 */
29716c4d0b41SAdrian Hunter 
29726c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbw %xmm4,%xmm5");
29736c4d0b41SAdrian Hunter 	asm volatile("vpmovswb %zmm5,%ymm6{%k7}");
29746c4d0b41SAdrian Hunter 
29756c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 21 */
29766c4d0b41SAdrian Hunter 
29776c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbd %xmm4,%ymm6");
29786c4d0b41SAdrian Hunter 	asm volatile("vpmovsdb %zmm5,%xmm6{%k7}");
29796c4d0b41SAdrian Hunter 
29806c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 22 */
29816c4d0b41SAdrian Hunter 
29826c4d0b41SAdrian Hunter 	asm volatile("vpmovsxbq %xmm4,%ymm4");
29836c4d0b41SAdrian Hunter 	asm volatile("vpmovsqb %zmm5,%xmm6{%k7}");
29846c4d0b41SAdrian Hunter 
29856c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 23 */
29866c4d0b41SAdrian Hunter 
29876c4d0b41SAdrian Hunter 	asm volatile("vpmovsxwd %xmm4,%ymm4");
29886c4d0b41SAdrian Hunter 	asm volatile("vpmovsdw %zmm5,%ymm6{%k7}");
29896c4d0b41SAdrian Hunter 
29906c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 24 */
29916c4d0b41SAdrian Hunter 
29926c4d0b41SAdrian Hunter 	asm volatile("vpmovsxwq %xmm4,%ymm6");
29936c4d0b41SAdrian Hunter 	asm volatile("vpmovsqw %zmm5,%xmm6{%k7}");
29946c4d0b41SAdrian Hunter 
29956c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 25 */
29966c4d0b41SAdrian Hunter 
29976c4d0b41SAdrian Hunter 	asm volatile("vpmovsxdq %xmm4,%ymm4");
29986c4d0b41SAdrian Hunter 	asm volatile("vpmovsqd %zmm5,%ymm6{%k7}");
29996c4d0b41SAdrian Hunter 
30006c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 26 */
30016c4d0b41SAdrian Hunter 
30026c4d0b41SAdrian Hunter 	asm volatile("vptestmb %zmm5,%zmm6,%k5");
30036c4d0b41SAdrian Hunter 	asm volatile("vptestmw %zmm5,%zmm6,%k5");
30046c4d0b41SAdrian Hunter 	asm volatile("vptestnmb %zmm4,%zmm5,%k5");
30056c4d0b41SAdrian Hunter 	asm volatile("vptestnmw %zmm4,%zmm5,%k5");
30066c4d0b41SAdrian Hunter 
30076c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 27 */
30086c4d0b41SAdrian Hunter 
30096c4d0b41SAdrian Hunter 	asm volatile("vptestmd %zmm5,%zmm6,%k5");
30106c4d0b41SAdrian Hunter 	asm volatile("vptestmq %zmm5,%zmm6,%k5");
30116c4d0b41SAdrian Hunter 	asm volatile("vptestnmd %zmm4,%zmm5,%k5");
30126c4d0b41SAdrian Hunter 	asm volatile("vptestnmq %zmm4,%zmm5,%k5");
30136c4d0b41SAdrian Hunter 
30146c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 28 */
30156c4d0b41SAdrian Hunter 
30166c4d0b41SAdrian Hunter 	asm volatile("vpmuldq %ymm4,%ymm6,%ymm2");
30176c4d0b41SAdrian Hunter 	asm volatile("vpmovm2b %k5,%zmm6");
30186c4d0b41SAdrian Hunter 	asm volatile("vpmovm2w %k5,%zmm6");
30196c4d0b41SAdrian Hunter 
30206c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 29 */
30216c4d0b41SAdrian Hunter 
30226c4d0b41SAdrian Hunter 	asm volatile("vpcmpeqq %ymm4,%ymm6,%ymm2");
30236c4d0b41SAdrian Hunter 	asm volatile("vpmovb2m %zmm6,%k5");
30246c4d0b41SAdrian Hunter 	asm volatile("vpmovw2m %zmm6,%k5");
30256c4d0b41SAdrian Hunter 
30266c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2a */
30276c4d0b41SAdrian Hunter 
30286c4d0b41SAdrian Hunter 	asm volatile("vmovntdqa (%ecx),%ymm4");
30296c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastmb2q %k6,%zmm1");
30306c4d0b41SAdrian Hunter 
30316c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2c */
30326c4d0b41SAdrian Hunter 
30336c4d0b41SAdrian Hunter 	asm volatile("vmaskmovps (%ecx),%ymm4,%ymm6");
30346c4d0b41SAdrian Hunter 	asm volatile("vscalefps %zmm4,%zmm5,%zmm6");
30356c4d0b41SAdrian Hunter 	asm volatile("vscalefpd %zmm4,%zmm5,%zmm6");
30366c4d0b41SAdrian Hunter 
30376c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 2d */
30386c4d0b41SAdrian Hunter 
30396c4d0b41SAdrian Hunter 	asm volatile("vmaskmovpd (%ecx),%ymm4,%ymm6");
30406c4d0b41SAdrian Hunter 	asm volatile("vscalefss %xmm4,%xmm5,%xmm6{%k7}");
30416c4d0b41SAdrian Hunter 	asm volatile("vscalefsd %xmm4,%xmm5,%xmm6{%k7}");
30426c4d0b41SAdrian Hunter 
30436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 30 */
30446c4d0b41SAdrian Hunter 
30456c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbw %xmm4,%ymm4");
30466c4d0b41SAdrian Hunter 	asm volatile("vpmovwb %zmm5,%ymm6{%k7}");
30476c4d0b41SAdrian Hunter 
30486c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 31 */
30496c4d0b41SAdrian Hunter 
30506c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbd %xmm4,%ymm6");
30516c4d0b41SAdrian Hunter 	asm volatile("vpmovdb %zmm5,%xmm6{%k7}");
30526c4d0b41SAdrian Hunter 
30536c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 32 */
30546c4d0b41SAdrian Hunter 
30556c4d0b41SAdrian Hunter 	asm volatile("vpmovzxbq %xmm4,%ymm4");
30566c4d0b41SAdrian Hunter 	asm volatile("vpmovqb %zmm5,%xmm6{%k7}");
30576c4d0b41SAdrian Hunter 
30586c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 33 */
30596c4d0b41SAdrian Hunter 
30606c4d0b41SAdrian Hunter 	asm volatile("vpmovzxwd %xmm4,%ymm4");
30616c4d0b41SAdrian Hunter 	asm volatile("vpmovdw %zmm5,%ymm6{%k7}");
30626c4d0b41SAdrian Hunter 
30636c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 34 */
30646c4d0b41SAdrian Hunter 
30656c4d0b41SAdrian Hunter 	asm volatile("vpmovzxwq %xmm4,%ymm6");
30666c4d0b41SAdrian Hunter 	asm volatile("vpmovqw %zmm5,%xmm6{%k7}");
30676c4d0b41SAdrian Hunter 
30686c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 35 */
30696c4d0b41SAdrian Hunter 
30706c4d0b41SAdrian Hunter 	asm volatile("vpmovzxdq %xmm4,%ymm4");
30716c4d0b41SAdrian Hunter 	asm volatile("vpmovqd %zmm5,%ymm6{%k7}");
30726c4d0b41SAdrian Hunter 
30736c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 36 */
30746c4d0b41SAdrian Hunter 
30756c4d0b41SAdrian Hunter 	asm volatile("vpermd %ymm4,%ymm6,%ymm2");
30766c4d0b41SAdrian Hunter 	asm volatile("vpermd %ymm4,%ymm6,%ymm2{%k7}");
30776c4d0b41SAdrian Hunter 	asm volatile("vpermq %ymm4,%ymm6,%ymm2{%k7}");
30786c4d0b41SAdrian Hunter 
30796c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 38 */
30806c4d0b41SAdrian Hunter 
30816c4d0b41SAdrian Hunter 	asm volatile("vpminsb %ymm4,%ymm6,%ymm2");
30826c4d0b41SAdrian Hunter 	asm volatile("vpmovm2d %k5,%zmm6");
30836c4d0b41SAdrian Hunter 	asm volatile("vpmovm2q %k5,%zmm6");
30846c4d0b41SAdrian Hunter 
30856c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 39 */
30866c4d0b41SAdrian Hunter 
30876c4d0b41SAdrian Hunter 	asm volatile("vpminsd %xmm1,%xmm2,%xmm3");
30886c4d0b41SAdrian Hunter 	asm volatile("vpminsd %zmm4,%zmm5,%zmm6");
30896c4d0b41SAdrian Hunter 	asm volatile("vpminsq %zmm4,%zmm5,%zmm6");
30906c4d0b41SAdrian Hunter 	asm volatile("vpmovd2m %zmm6,%k5");
30916c4d0b41SAdrian Hunter 	asm volatile("vpmovq2m %zmm6,%k5");
30926c4d0b41SAdrian Hunter 
30936c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3a */
30946c4d0b41SAdrian Hunter 
30956c4d0b41SAdrian Hunter 	asm volatile("vpminuw %ymm4,%ymm6,%ymm2");
30966c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastmw2d %k6,%zmm6");
30976c4d0b41SAdrian Hunter 
30986c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3b */
30996c4d0b41SAdrian Hunter 
31006c4d0b41SAdrian Hunter 	asm volatile("vpminud %ymm4,%ymm6,%ymm2");
31016c4d0b41SAdrian Hunter 	asm volatile("vpminud %zmm4,%zmm5,%zmm6");
31026c4d0b41SAdrian Hunter 	asm volatile("vpminuq %zmm4,%zmm5,%zmm6");
31036c4d0b41SAdrian Hunter 
31046c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3d */
31056c4d0b41SAdrian Hunter 
31066c4d0b41SAdrian Hunter 	asm volatile("vpmaxsd %ymm4,%ymm6,%ymm2");
31076c4d0b41SAdrian Hunter 	asm volatile("vpmaxsd %zmm4,%zmm5,%zmm6");
31086c4d0b41SAdrian Hunter 	asm volatile("vpmaxsq %zmm4,%zmm5,%zmm6");
31096c4d0b41SAdrian Hunter 
31106c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 3f */
31116c4d0b41SAdrian Hunter 
31126c4d0b41SAdrian Hunter 	asm volatile("vpmaxud %ymm4,%ymm6,%ymm2");
31136c4d0b41SAdrian Hunter 	asm volatile("vpmaxud %zmm4,%zmm5,%zmm6");
31146c4d0b41SAdrian Hunter 	asm volatile("vpmaxuq %zmm4,%zmm5,%zmm6");
31156c4d0b41SAdrian Hunter 
31166c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 40 */
31176c4d0b41SAdrian Hunter 
31186c4d0b41SAdrian Hunter 	asm volatile("vpmulld %ymm4,%ymm6,%ymm2");
31196c4d0b41SAdrian Hunter 	asm volatile("vpmulld %zmm4,%zmm5,%zmm6");
31206c4d0b41SAdrian Hunter 	asm volatile("vpmullq %zmm4,%zmm5,%zmm6");
31216c4d0b41SAdrian Hunter 
31226c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 42 */
31236c4d0b41SAdrian Hunter 
31246c4d0b41SAdrian Hunter 	asm volatile("vgetexpps %zmm5,%zmm6");
31256c4d0b41SAdrian Hunter 	asm volatile("vgetexppd %zmm5,%zmm6");
31266c4d0b41SAdrian Hunter 
31276c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 43 */
31286c4d0b41SAdrian Hunter 
31296c4d0b41SAdrian Hunter 	asm volatile("vgetexpss %xmm4,%xmm5,%xmm6{%k7}");
31306c4d0b41SAdrian Hunter 	asm volatile("vgetexpsd %xmm2,%xmm3,%xmm4{%k7}");
31316c4d0b41SAdrian Hunter 
31326c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 44 */
31336c4d0b41SAdrian Hunter 
31346c4d0b41SAdrian Hunter 	asm volatile("vplzcntd %zmm5,%zmm6");
31356c4d0b41SAdrian Hunter 	asm volatile("vplzcntq %zmm5,%zmm6");
31366c4d0b41SAdrian Hunter 
31376c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 46 */
31386c4d0b41SAdrian Hunter 
31396c4d0b41SAdrian Hunter 	asm volatile("vpsravd %ymm4,%ymm6,%ymm2");
31406c4d0b41SAdrian Hunter 	asm volatile("vpsravd %zmm4,%zmm5,%zmm6");
31416c4d0b41SAdrian Hunter 	asm volatile("vpsravq %zmm4,%zmm5,%zmm6");
31426c4d0b41SAdrian Hunter 
31436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4c */
31446c4d0b41SAdrian Hunter 
31456c4d0b41SAdrian Hunter 	asm volatile("vrcp14ps %zmm5,%zmm6");
31466c4d0b41SAdrian Hunter 	asm volatile("vrcp14pd %zmm5,%zmm6");
31476c4d0b41SAdrian Hunter 
31486c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4d */
31496c4d0b41SAdrian Hunter 
31506c4d0b41SAdrian Hunter 	asm volatile("vrcp14ss %xmm4,%xmm5,%xmm6{%k7}");
31516c4d0b41SAdrian Hunter 	asm volatile("vrcp14sd %xmm4,%xmm5,%xmm6{%k7}");
31526c4d0b41SAdrian Hunter 
31536c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4e */
31546c4d0b41SAdrian Hunter 
31556c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14ps %zmm5,%zmm6");
31566c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14pd %zmm5,%zmm6");
31576c4d0b41SAdrian Hunter 
31586c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 4f */
31596c4d0b41SAdrian Hunter 
31606c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14ss %xmm4,%xmm5,%xmm6{%k7}");
31616c4d0b41SAdrian Hunter 	asm volatile("vrsqrt14sd %xmm4,%xmm5,%xmm6{%k7}");
31626c4d0b41SAdrian Hunter 
31639adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 50 */
31649adab034SAdrian Hunter 
31659adab034SAdrian Hunter 	asm volatile("vpdpbusd %xmm1, %xmm2, %xmm3");
31669adab034SAdrian Hunter 	asm volatile("vpdpbusd %ymm1, %ymm2, %ymm3");
31679adab034SAdrian Hunter 	asm volatile("vpdpbusd %zmm1, %zmm2, %zmm3");
31689adab034SAdrian Hunter 	asm volatile("vpdpbusd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
31699adab034SAdrian Hunter 
31709adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 51 */
31719adab034SAdrian Hunter 
31729adab034SAdrian Hunter 	asm volatile("vpdpbusds %xmm1, %xmm2, %xmm3");
31739adab034SAdrian Hunter 	asm volatile("vpdpbusds %ymm1, %ymm2, %ymm3");
31749adab034SAdrian Hunter 	asm volatile("vpdpbusds %zmm1, %zmm2, %zmm3");
31759adab034SAdrian Hunter 	asm volatile("vpdpbusds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
31769adab034SAdrian Hunter 
31779adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 52 */
31789adab034SAdrian Hunter 
31799adab034SAdrian Hunter 	asm volatile("vdpbf16ps %xmm1, %xmm2, %xmm3");
31809adab034SAdrian Hunter 	asm volatile("vdpbf16ps %ymm1, %ymm2, %ymm3");
31819adab034SAdrian Hunter 	asm volatile("vdpbf16ps %zmm1, %zmm2, %zmm3");
31829adab034SAdrian Hunter 	asm volatile("vdpbf16ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
31839adab034SAdrian Hunter 
31849adab034SAdrian Hunter 	asm volatile("vpdpwssd %xmm1, %xmm2, %xmm3");
31859adab034SAdrian Hunter 	asm volatile("vpdpwssd %ymm1, %ymm2, %ymm3");
31869adab034SAdrian Hunter 	asm volatile("vpdpwssd %zmm1, %zmm2, %zmm3");
31879adab034SAdrian Hunter 	asm volatile("vpdpwssd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
31889adab034SAdrian Hunter 
31899adab034SAdrian Hunter 	asm volatile("vp4dpwssd (%eax), %zmm0, %zmm4");
31909adab034SAdrian Hunter 	asm volatile("vp4dpwssd 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
31919adab034SAdrian Hunter 
31929adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 53 */
31939adab034SAdrian Hunter 
31949adab034SAdrian Hunter 	asm volatile("vpdpwssds %xmm1, %xmm2, %xmm3");
31959adab034SAdrian Hunter 	asm volatile("vpdpwssds %ymm1, %ymm2, %ymm3");
31969adab034SAdrian Hunter 	asm volatile("vpdpwssds %zmm1, %zmm2, %zmm3");
31979adab034SAdrian Hunter 	asm volatile("vpdpwssds 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
31989adab034SAdrian Hunter 
31999adab034SAdrian Hunter 	asm volatile("vp4dpwssds (%eax), %zmm0, %zmm4");
32009adab034SAdrian Hunter 	asm volatile("vp4dpwssds 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
32019adab034SAdrian Hunter 
32029adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 54 */
32039adab034SAdrian Hunter 
32049adab034SAdrian Hunter 	asm volatile("vpopcntb %xmm1, %xmm2");
32059adab034SAdrian Hunter 	asm volatile("vpopcntb %ymm1, %ymm2");
32069adab034SAdrian Hunter 	asm volatile("vpopcntb %zmm1, %zmm2");
32079adab034SAdrian Hunter 	asm volatile("vpopcntb 0x12345678(%eax,%ecx,8),%zmm2");
32089adab034SAdrian Hunter 
32099adab034SAdrian Hunter 	asm volatile("vpopcntw %xmm1, %xmm2");
32109adab034SAdrian Hunter 	asm volatile("vpopcntw %ymm1, %ymm2");
32119adab034SAdrian Hunter 	asm volatile("vpopcntw %zmm1, %zmm2");
32129adab034SAdrian Hunter 	asm volatile("vpopcntw 0x12345678(%eax,%ecx,8),%zmm2");
32139adab034SAdrian Hunter 
32149adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 55 */
32159adab034SAdrian Hunter 
32169adab034SAdrian Hunter 	asm volatile("vpopcntd %xmm1, %xmm2");
32179adab034SAdrian Hunter 	asm volatile("vpopcntd %ymm1, %ymm2");
32189adab034SAdrian Hunter 	asm volatile("vpopcntd %zmm1, %zmm2");
32199adab034SAdrian Hunter 	asm volatile("vpopcntd 0x12345678(%eax,%ecx,8),%zmm2");
32209adab034SAdrian Hunter 
32219adab034SAdrian Hunter 	asm volatile("vpopcntq %xmm1, %xmm2");
32229adab034SAdrian Hunter 	asm volatile("vpopcntq %ymm1, %ymm2");
32239adab034SAdrian Hunter 	asm volatile("vpopcntq %zmm1, %zmm2");
32249adab034SAdrian Hunter 	asm volatile("vpopcntq 0x12345678(%eax,%ecx,8),%zmm2");
32259adab034SAdrian Hunter 
32266c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 59 */
32276c4d0b41SAdrian Hunter 
32286c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastq %xmm4,%xmm6");
32296c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x2 %xmm7,%zmm6");
32306c4d0b41SAdrian Hunter 
32316c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 5a */
32326c4d0b41SAdrian Hunter 
32336c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti128 (%ecx),%ymm4");
32346c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x4 (%ecx),%zmm6");
32356c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti64x2 (%ecx),%zmm6");
32366c4d0b41SAdrian Hunter 
32376c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 5b */
32386c4d0b41SAdrian Hunter 
32396c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti32x8 (%ecx),%zmm6");
32406c4d0b41SAdrian Hunter 	asm volatile("vbroadcasti64x4 (%ecx),%zmm6");
32416c4d0b41SAdrian Hunter 
32429adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 62 */
32439adab034SAdrian Hunter 
32449adab034SAdrian Hunter 	asm volatile("vpexpandb %xmm1, %xmm2");
32459adab034SAdrian Hunter 	asm volatile("vpexpandb %ymm1, %ymm2");
32469adab034SAdrian Hunter 	asm volatile("vpexpandb %zmm1, %zmm2");
32479adab034SAdrian Hunter 	asm volatile("vpexpandb 0x12345678(%eax,%ecx,8),%zmm2");
32489adab034SAdrian Hunter 
32499adab034SAdrian Hunter 	asm volatile("vpexpandw %xmm1, %xmm2");
32509adab034SAdrian Hunter 	asm volatile("vpexpandw %ymm1, %ymm2");
32519adab034SAdrian Hunter 	asm volatile("vpexpandw %zmm1, %zmm2");
32529adab034SAdrian Hunter 	asm volatile("vpexpandw 0x12345678(%eax,%ecx,8),%zmm2");
32539adab034SAdrian Hunter 
32549adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 63 */
32559adab034SAdrian Hunter 
32569adab034SAdrian Hunter 	asm volatile("vpcompressb %xmm1, %xmm2");
32579adab034SAdrian Hunter 	asm volatile("vpcompressb %ymm1, %ymm2");
32589adab034SAdrian Hunter 	asm volatile("vpcompressb %zmm1, %zmm2");
32599adab034SAdrian Hunter 	asm volatile("vpcompressb %zmm2,0x12345678(%eax,%ecx,8)");
32609adab034SAdrian Hunter 
32619adab034SAdrian Hunter 	asm volatile("vpcompressw %xmm1, %xmm2");
32629adab034SAdrian Hunter 	asm volatile("vpcompressw %ymm1, %ymm2");
32639adab034SAdrian Hunter 	asm volatile("vpcompressw %zmm1, %zmm2");
32649adab034SAdrian Hunter 	asm volatile("vpcompressw %zmm2,0x12345678(%eax,%ecx,8)");
32659adab034SAdrian Hunter 
32666c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 64 */
32676c4d0b41SAdrian Hunter 
32686c4d0b41SAdrian Hunter 	asm volatile("vpblendmd %zmm4,%zmm5,%zmm6");
32696c4d0b41SAdrian Hunter 	asm volatile("vpblendmq %zmm4,%zmm5,%zmm6");
32706c4d0b41SAdrian Hunter 
32716c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 65 */
32726c4d0b41SAdrian Hunter 
32736c4d0b41SAdrian Hunter 	asm volatile("vblendmps %zmm4,%zmm5,%zmm6");
32746c4d0b41SAdrian Hunter 	asm volatile("vblendmpd %zmm4,%zmm5,%zmm6");
32756c4d0b41SAdrian Hunter 
32766c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 66 */
32776c4d0b41SAdrian Hunter 
32786c4d0b41SAdrian Hunter 	asm volatile("vpblendmb %zmm4,%zmm5,%zmm6");
32796c4d0b41SAdrian Hunter 	asm volatile("vpblendmw %zmm4,%zmm5,%zmm6");
32806c4d0b41SAdrian Hunter 
32819adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 68 */
32829adab034SAdrian Hunter 
32839adab034SAdrian Hunter 	asm volatile("vp2intersectd %xmm1, %xmm2, %k3");
32849adab034SAdrian Hunter 	asm volatile("vp2intersectd %ymm1, %ymm2, %k3");
32859adab034SAdrian Hunter 	asm volatile("vp2intersectd %zmm1, %zmm2, %k3");
32869adab034SAdrian Hunter 	asm volatile("vp2intersectd 0x12345678(%eax,%ecx,8),%zmm2,%k3");
32879adab034SAdrian Hunter 
32889adab034SAdrian Hunter 	asm volatile("vp2intersectq %xmm1, %xmm2, %k3");
32899adab034SAdrian Hunter 	asm volatile("vp2intersectq %ymm1, %ymm2, %k3");
32909adab034SAdrian Hunter 	asm volatile("vp2intersectq %zmm1, %zmm2, %k3");
32919adab034SAdrian Hunter 	asm volatile("vp2intersectq 0x12345678(%eax,%ecx,8),%zmm2,%k3");
32929adab034SAdrian Hunter 
32939adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 70 */
32949adab034SAdrian Hunter 
32959adab034SAdrian Hunter 	asm volatile("vpshldvw %xmm1, %xmm2, %xmm3");
32969adab034SAdrian Hunter 	asm volatile("vpshldvw %ymm1, %ymm2, %ymm3");
32979adab034SAdrian Hunter 	asm volatile("vpshldvw %zmm1, %zmm2, %zmm3");
32989adab034SAdrian Hunter 	asm volatile("vpshldvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
32999adab034SAdrian Hunter 
33009adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 71 */
33019adab034SAdrian Hunter 
33029adab034SAdrian Hunter 	asm volatile("vpshldvd %xmm1, %xmm2, %xmm3");
33039adab034SAdrian Hunter 	asm volatile("vpshldvd %ymm1, %ymm2, %ymm3");
33049adab034SAdrian Hunter 	asm volatile("vpshldvd %zmm1, %zmm2, %zmm3");
33059adab034SAdrian Hunter 	asm volatile("vpshldvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33069adab034SAdrian Hunter 
33079adab034SAdrian Hunter 	asm volatile("vpshldvq %xmm1, %xmm2, %xmm3");
33089adab034SAdrian Hunter 	asm volatile("vpshldvq %ymm1, %ymm2, %ymm3");
33099adab034SAdrian Hunter 	asm volatile("vpshldvq %zmm1, %zmm2, %zmm3");
33109adab034SAdrian Hunter 	asm volatile("vpshldvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33119adab034SAdrian Hunter 
33129adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 72 */
33139adab034SAdrian Hunter 
33149adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %xmm1, %xmm2, %xmm3");
33159adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %ymm1, %ymm2, %ymm3");
33169adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 %zmm1, %zmm2, %zmm3");
33179adab034SAdrian Hunter 	asm volatile("vcvtne2ps2bf16 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33189adab034SAdrian Hunter 
33199adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %xmm1, %xmm2");
33209adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %ymm1, %xmm2");
33219adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 %zmm1, %ymm2");
33229adab034SAdrian Hunter 	asm volatile("vcvtneps2bf16 0x12345678(%eax,%ecx,8),%ymm2");
33239adab034SAdrian Hunter 
33249adab034SAdrian Hunter 	asm volatile("vpshrdvw %xmm1, %xmm2, %xmm3");
33259adab034SAdrian Hunter 	asm volatile("vpshrdvw %ymm1, %ymm2, %ymm3");
33269adab034SAdrian Hunter 	asm volatile("vpshrdvw %zmm1, %zmm2, %zmm3");
33279adab034SAdrian Hunter 	asm volatile("vpshrdvw 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33289adab034SAdrian Hunter 
33299adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 73 */
33309adab034SAdrian Hunter 
33319adab034SAdrian Hunter 	asm volatile("vpshrdvd %xmm1, %xmm2, %xmm3");
33329adab034SAdrian Hunter 	asm volatile("vpshrdvd %ymm1, %ymm2, %ymm3");
33339adab034SAdrian Hunter 	asm volatile("vpshrdvd %zmm1, %zmm2, %zmm3");
33349adab034SAdrian Hunter 	asm volatile("vpshrdvd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33359adab034SAdrian Hunter 
33369adab034SAdrian Hunter 	asm volatile("vpshrdvq %xmm1, %xmm2, %xmm3");
33379adab034SAdrian Hunter 	asm volatile("vpshrdvq %ymm1, %ymm2, %ymm3");
33389adab034SAdrian Hunter 	asm volatile("vpshrdvq %zmm1, %zmm2, %zmm3");
33399adab034SAdrian Hunter 	asm volatile("vpshrdvq 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
33409adab034SAdrian Hunter 
33416c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 75 */
33426c4d0b41SAdrian Hunter 
33436c4d0b41SAdrian Hunter 	asm volatile("vpermi2b %zmm4,%zmm5,%zmm6");
33446c4d0b41SAdrian Hunter 	asm volatile("vpermi2w %zmm4,%zmm5,%zmm6");
33456c4d0b41SAdrian Hunter 
33466c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 76 */
33476c4d0b41SAdrian Hunter 
33486c4d0b41SAdrian Hunter 	asm volatile("vpermi2d %zmm4,%zmm5,%zmm6");
33496c4d0b41SAdrian Hunter 	asm volatile("vpermi2q %zmm4,%zmm5,%zmm6");
33506c4d0b41SAdrian Hunter 
33516c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 77 */
33526c4d0b41SAdrian Hunter 
33536c4d0b41SAdrian Hunter 	asm volatile("vpermi2ps %zmm4,%zmm5,%zmm6");
33546c4d0b41SAdrian Hunter 	asm volatile("vpermi2pd %zmm4,%zmm5,%zmm6");
33556c4d0b41SAdrian Hunter 
33566c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7a */
33576c4d0b41SAdrian Hunter 
33586c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastb %eax,%xmm3");
33596c4d0b41SAdrian Hunter 
33606c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7b */
33616c4d0b41SAdrian Hunter 
33626c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastw %eax,%xmm3");
33636c4d0b41SAdrian Hunter 
33646c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7c */
33656c4d0b41SAdrian Hunter 
33666c4d0b41SAdrian Hunter 	asm volatile("vpbroadcastd %eax,%xmm3");
33676c4d0b41SAdrian Hunter 
33686c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7d */
33696c4d0b41SAdrian Hunter 
33706c4d0b41SAdrian Hunter 	asm volatile("vpermt2b %zmm4,%zmm5,%zmm6");
33716c4d0b41SAdrian Hunter 	asm volatile("vpermt2w %zmm4,%zmm5,%zmm6");
33726c4d0b41SAdrian Hunter 
33736c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7e */
33746c4d0b41SAdrian Hunter 
33756c4d0b41SAdrian Hunter 	asm volatile("vpermt2d %zmm4,%zmm5,%zmm6");
33766c4d0b41SAdrian Hunter 	asm volatile("vpermt2q %zmm4,%zmm5,%zmm6");
33776c4d0b41SAdrian Hunter 
33786c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 7f */
33796c4d0b41SAdrian Hunter 
33806c4d0b41SAdrian Hunter 	asm volatile("vpermt2ps %zmm4,%zmm5,%zmm6");
33816c4d0b41SAdrian Hunter 	asm volatile("vpermt2pd %zmm4,%zmm5,%zmm6");
33826c4d0b41SAdrian Hunter 
33836c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 83 */
33846c4d0b41SAdrian Hunter 
33856c4d0b41SAdrian Hunter 	asm volatile("vpmultishiftqb %zmm4,%zmm5,%zmm6");
33866c4d0b41SAdrian Hunter 
33876c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 88 */
33886c4d0b41SAdrian Hunter 
33896c4d0b41SAdrian Hunter 	asm volatile("vexpandps (%ecx),%zmm6");
33906c4d0b41SAdrian Hunter 	asm volatile("vexpandpd (%ecx),%zmm6");
33916c4d0b41SAdrian Hunter 
33926c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 89 */
33936c4d0b41SAdrian Hunter 
33946c4d0b41SAdrian Hunter 	asm volatile("vpexpandd (%ecx),%zmm6");
33956c4d0b41SAdrian Hunter 	asm volatile("vpexpandq (%ecx),%zmm6");
33966c4d0b41SAdrian Hunter 
33976c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8a */
33986c4d0b41SAdrian Hunter 
33996c4d0b41SAdrian Hunter 	asm volatile("vcompressps %zmm6,(%ecx)");
34006c4d0b41SAdrian Hunter 	asm volatile("vcompresspd %zmm6,(%ecx)");
34016c4d0b41SAdrian Hunter 
34026c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8b */
34036c4d0b41SAdrian Hunter 
34046c4d0b41SAdrian Hunter 	asm volatile("vpcompressd %zmm6,(%ecx)");
34056c4d0b41SAdrian Hunter 	asm volatile("vpcompressq %zmm6,(%ecx)");
34066c4d0b41SAdrian Hunter 
34076c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 8d */
34086c4d0b41SAdrian Hunter 
34096c4d0b41SAdrian Hunter 	asm volatile("vpermb %zmm4,%zmm5,%zmm6");
34106c4d0b41SAdrian Hunter 	asm volatile("vpermw %zmm4,%zmm5,%zmm6");
34116c4d0b41SAdrian Hunter 
34129adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 8f */
34139adab034SAdrian Hunter 
34149adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %xmm1, %xmm2, %k3");
34159adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %ymm1, %ymm2, %k3");
34169adab034SAdrian Hunter 	asm volatile("vpshufbitqmb %zmm1, %zmm2, %k3");
34179adab034SAdrian Hunter 	asm volatile("vpshufbitqmb 0x12345678(%eax,%ecx,8),%zmm2,%k3");
34189adab034SAdrian Hunter 
34196c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 90 */
34206c4d0b41SAdrian Hunter 
34216c4d0b41SAdrian Hunter 	asm volatile("vpgatherdd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
34226c4d0b41SAdrian Hunter 	asm volatile("vpgatherdq %xmm2,0x04(%ebp,%xmm7,2),%xmm1");
34236c4d0b41SAdrian Hunter 	asm volatile("vpgatherdd 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
34246c4d0b41SAdrian Hunter 	asm volatile("vpgatherdq 0x7b(%ebp,%ymm7,8),%zmm6{%k1}");
34256c4d0b41SAdrian Hunter 
34266c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 91 */
34276c4d0b41SAdrian Hunter 
34286c4d0b41SAdrian Hunter 	asm volatile("vpgatherqd %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
34296c4d0b41SAdrian Hunter 	asm volatile("vpgatherqq %xmm2,0x02(%ebp,%xmm7,2),%xmm1");
34306c4d0b41SAdrian Hunter 	asm volatile("vpgatherqd 0x7b(%ebp,%zmm7,8),%ymm6{%k1}");
34316c4d0b41SAdrian Hunter 	asm volatile("vpgatherqq 0x7b(%ebp,%zmm7,8),%zmm6{%k1}");
34326c4d0b41SAdrian Hunter 
34339adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 9a */
34349adab034SAdrian Hunter 
34359adab034SAdrian Hunter 	asm volatile("vfmsub132ps %xmm1, %xmm2, %xmm3");
34369adab034SAdrian Hunter 	asm volatile("vfmsub132ps %ymm1, %ymm2, %ymm3");
34379adab034SAdrian Hunter 	asm volatile("vfmsub132ps %zmm1, %zmm2, %zmm3");
34389adab034SAdrian Hunter 	asm volatile("vfmsub132ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
34399adab034SAdrian Hunter 
34409adab034SAdrian Hunter 	asm volatile("vfmsub132pd %xmm1, %xmm2, %xmm3");
34419adab034SAdrian Hunter 	asm volatile("vfmsub132pd %ymm1, %ymm2, %ymm3");
34429adab034SAdrian Hunter 	asm volatile("vfmsub132pd %zmm1, %zmm2, %zmm3");
34439adab034SAdrian Hunter 	asm volatile("vfmsub132pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
34449adab034SAdrian Hunter 
34459adab034SAdrian Hunter 	asm volatile("v4fmaddps (%eax), %zmm0, %zmm4");
34469adab034SAdrian Hunter 	asm volatile("v4fmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
34479adab034SAdrian Hunter 
34489adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 9b */
34499adab034SAdrian Hunter 
34509adab034SAdrian Hunter 	asm volatile("vfmsub132ss %xmm1, %xmm2, %xmm3");
34519adab034SAdrian Hunter 	asm volatile("vfmsub132ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
34529adab034SAdrian Hunter 
34539adab034SAdrian Hunter 	asm volatile("vfmsub132sd %xmm1, %xmm2, %xmm3");
34549adab034SAdrian Hunter 	asm volatile("vfmsub132sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
34559adab034SAdrian Hunter 
34569adab034SAdrian Hunter 	asm volatile("v4fmaddss (%eax), %xmm0, %xmm4");
34579adab034SAdrian Hunter 	asm volatile("v4fmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
34589adab034SAdrian Hunter 
34596c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a0 */
34606c4d0b41SAdrian Hunter 
34616c4d0b41SAdrian Hunter 	asm volatile("vpscatterdd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
34626c4d0b41SAdrian Hunter 	asm volatile("vpscatterdq %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
34636c4d0b41SAdrian Hunter 
34646c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a1 */
34656c4d0b41SAdrian Hunter 
34666c4d0b41SAdrian Hunter 	asm volatile("vpscatterqd %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
34676c4d0b41SAdrian Hunter 	asm volatile("vpscatterqq %ymm6,0x7b(%ebp,%ymm7,8){%k1}");
34686c4d0b41SAdrian Hunter 
34696c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a2 */
34706c4d0b41SAdrian Hunter 
34716c4d0b41SAdrian Hunter 	asm volatile("vscatterdps %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
34726c4d0b41SAdrian Hunter 	asm volatile("vscatterdpd %zmm6,0x7b(%ebp,%ymm7,8){%k1}");
34736c4d0b41SAdrian Hunter 
34746c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 a3 */
34756c4d0b41SAdrian Hunter 
34766c4d0b41SAdrian Hunter 	asm volatile("vscatterqps %ymm6,0x7b(%ebp,%zmm7,8){%k1}");
34776c4d0b41SAdrian Hunter 	asm volatile("vscatterqpd %zmm6,0x7b(%ebp,%zmm7,8){%k1}");
34786c4d0b41SAdrian Hunter 
34799adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 aa */
34809adab034SAdrian Hunter 
34819adab034SAdrian Hunter 	asm volatile("vfmsub213ps %xmm1, %xmm2, %xmm3");
34829adab034SAdrian Hunter 	asm volatile("vfmsub213ps %ymm1, %ymm2, %ymm3");
34839adab034SAdrian Hunter 	asm volatile("vfmsub213ps %zmm1, %zmm2, %zmm3");
34849adab034SAdrian Hunter 	asm volatile("vfmsub213ps 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
34859adab034SAdrian Hunter 
34869adab034SAdrian Hunter 	asm volatile("vfmsub213pd %xmm1, %xmm2, %xmm3");
34879adab034SAdrian Hunter 	asm volatile("vfmsub213pd %ymm1, %ymm2, %ymm3");
34889adab034SAdrian Hunter 	asm volatile("vfmsub213pd %zmm1, %zmm2, %zmm3");
34899adab034SAdrian Hunter 	asm volatile("vfmsub213pd 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
34909adab034SAdrian Hunter 
34919adab034SAdrian Hunter 	asm volatile("v4fnmaddps (%eax), %zmm0, %zmm4");
34929adab034SAdrian Hunter 	asm volatile("v4fnmaddps 0x12345678(%eax,%ecx,8),%zmm0,%zmm4");
34939adab034SAdrian Hunter 
34949adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 ab */
34959adab034SAdrian Hunter 
34969adab034SAdrian Hunter 	asm volatile("vfmsub213ss %xmm1, %xmm2, %xmm3");
34979adab034SAdrian Hunter 	asm volatile("vfmsub213ss 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
34989adab034SAdrian Hunter 
34999adab034SAdrian Hunter 	asm volatile("vfmsub213sd %xmm1, %xmm2, %xmm3");
35009adab034SAdrian Hunter 	asm volatile("vfmsub213sd 0x12345678(%eax,%ecx,8),%xmm2,%xmm3");
35019adab034SAdrian Hunter 
35029adab034SAdrian Hunter 	asm volatile("v4fnmaddss (%eax), %xmm0, %xmm4");
35039adab034SAdrian Hunter 	asm volatile("v4fnmaddss 0x12345678(%eax,%ecx,8),%xmm0,%xmm4");
35049adab034SAdrian Hunter 
35056c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 b4 */
35066c4d0b41SAdrian Hunter 
35076c4d0b41SAdrian Hunter 	asm volatile("vpmadd52luq %zmm4,%zmm5,%zmm6");
35086c4d0b41SAdrian Hunter 
35096c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 b5 */
35106c4d0b41SAdrian Hunter 
35116c4d0b41SAdrian Hunter 	asm volatile("vpmadd52huq %zmm4,%zmm5,%zmm6");
35126c4d0b41SAdrian Hunter 
35136c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c4 */
35146c4d0b41SAdrian Hunter 
35156c4d0b41SAdrian Hunter 	asm volatile("vpconflictd %zmm5,%zmm6");
35166c4d0b41SAdrian Hunter 	asm volatile("vpconflictq %zmm5,%zmm6");
35176c4d0b41SAdrian Hunter 
35186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c8 */
35196c4d0b41SAdrian Hunter 
35206c4d0b41SAdrian Hunter 	asm volatile("vexp2ps %zmm6,%zmm7");
35216c4d0b41SAdrian Hunter 	asm volatile("vexp2pd %zmm6,%zmm7");
35226c4d0b41SAdrian Hunter 
35236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 ca */
35246c4d0b41SAdrian Hunter 
35256c4d0b41SAdrian Hunter 	asm volatile("vrcp28ps %zmm6,%zmm7");
35266c4d0b41SAdrian Hunter 	asm volatile("vrcp28pd %zmm6,%zmm7");
35276c4d0b41SAdrian Hunter 
35286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cb */
35296c4d0b41SAdrian Hunter 
35306c4d0b41SAdrian Hunter 	asm volatile("vrcp28ss %xmm5,%xmm6,%xmm7{%k7}");
35316c4d0b41SAdrian Hunter 	asm volatile("vrcp28sd %xmm5,%xmm6,%xmm7{%k7}");
35326c4d0b41SAdrian Hunter 
35336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cc */
35346c4d0b41SAdrian Hunter 
35356c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28ps %zmm6,%zmm7");
35366c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28pd %zmm6,%zmm7");
35376c4d0b41SAdrian Hunter 
35386c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 cd */
35396c4d0b41SAdrian Hunter 
35406c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28ss %xmm5,%xmm6,%xmm7{%k7}");
35416c4d0b41SAdrian Hunter 	asm volatile("vrsqrt28sd %xmm5,%xmm6,%xmm7{%k7}");
35426c4d0b41SAdrian Hunter 
35439adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 cf */
35449adab034SAdrian Hunter 
35459adab034SAdrian Hunter 	asm volatile("gf2p8mulb %xmm1, %xmm3");
35469adab034SAdrian Hunter 	asm volatile("gf2p8mulb 0x12345678(%eax,%ecx,8),%xmm3");
35479adab034SAdrian Hunter 
35489adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %xmm1, %xmm2, %xmm3");
35499adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %ymm1, %ymm2, %ymm3");
35509adab034SAdrian Hunter 	asm volatile("vgf2p8mulb %zmm1, %zmm2, %zmm3");
35519adab034SAdrian Hunter 	asm volatile("vgf2p8mulb 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
35529adab034SAdrian Hunter 
35539adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 dc */
35549adab034SAdrian Hunter 
35559adab034SAdrian Hunter 	asm volatile("vaesenc %xmm1, %xmm2, %xmm3");
35569adab034SAdrian Hunter 	asm volatile("vaesenc %ymm1, %ymm2, %ymm3");
35579adab034SAdrian Hunter 	asm volatile("vaesenc %zmm1, %zmm2, %zmm3");
35589adab034SAdrian Hunter 	asm volatile("vaesenc 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
35599adab034SAdrian Hunter 
35609adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 dd */
35619adab034SAdrian Hunter 
35629adab034SAdrian Hunter 	asm volatile("vaesenclast %xmm1, %xmm2, %xmm3");
35639adab034SAdrian Hunter 	asm volatile("vaesenclast %ymm1, %ymm2, %ymm3");
35649adab034SAdrian Hunter 	asm volatile("vaesenclast %zmm1, %zmm2, %zmm3");
35659adab034SAdrian Hunter 	asm volatile("vaesenclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
35669adab034SAdrian Hunter 
35679adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 de */
35689adab034SAdrian Hunter 
35699adab034SAdrian Hunter 	asm volatile("vaesdec %xmm1, %xmm2, %xmm3");
35709adab034SAdrian Hunter 	asm volatile("vaesdec %ymm1, %ymm2, %ymm3");
35719adab034SAdrian Hunter 	asm volatile("vaesdec %zmm1, %zmm2, %zmm3");
35729adab034SAdrian Hunter 	asm volatile("vaesdec 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
35739adab034SAdrian Hunter 
35749adab034SAdrian Hunter 	/* AVX-512: Op code 0f 38 df */
35759adab034SAdrian Hunter 
35769adab034SAdrian Hunter 	asm volatile("vaesdeclast %xmm1, %xmm2, %xmm3");
35779adab034SAdrian Hunter 	asm volatile("vaesdeclast %ymm1, %ymm2, %ymm3");
35789adab034SAdrian Hunter 	asm volatile("vaesdeclast %zmm1, %zmm2, %zmm3");
35799adab034SAdrian Hunter 	asm volatile("vaesdeclast 0x12345678(%eax,%ecx,8),%zmm2,%zmm3");
35809adab034SAdrian Hunter 
35816c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 03 */
35826c4d0b41SAdrian Hunter 
35836c4d0b41SAdrian Hunter 	asm volatile("valignd $0x12,%zmm5,%zmm6,%zmm7");
35846c4d0b41SAdrian Hunter 	asm volatile("valignq $0x12,%zmm5,%zmm6,%zmm7");
35856c4d0b41SAdrian Hunter 
35866c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 08 */
35876c4d0b41SAdrian Hunter 
35886c4d0b41SAdrian Hunter 	asm volatile("vroundps $0x5,%ymm6,%ymm2");
35896c4d0b41SAdrian Hunter 	asm volatile("vrndscaleps $0x12,%zmm5,%zmm6");
35906c4d0b41SAdrian Hunter 
35916c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 09 */
35926c4d0b41SAdrian Hunter 
35936c4d0b41SAdrian Hunter 	asm volatile("vroundpd $0x5,%ymm6,%ymm2");
35946c4d0b41SAdrian Hunter 	asm volatile("vrndscalepd $0x12,%zmm5,%zmm6");
35956c4d0b41SAdrian Hunter 
35966c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 0a */
35976c4d0b41SAdrian Hunter 
35986c4d0b41SAdrian Hunter 	asm volatile("vroundss $0x5,%xmm4,%xmm6,%xmm2");
35996c4d0b41SAdrian Hunter 	asm volatile("vrndscaless $0x12,%xmm4,%xmm5,%xmm6{%k7}");
36006c4d0b41SAdrian Hunter 
36016c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 0b */
36026c4d0b41SAdrian Hunter 
36036c4d0b41SAdrian Hunter 	asm volatile("vroundsd $0x5,%xmm4,%xmm6,%xmm2");
36046c4d0b41SAdrian Hunter 	asm volatile("vrndscalesd $0x12,%xmm4,%xmm5,%xmm6{%k7}");
36056c4d0b41SAdrian Hunter 
36066c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 18 */
36076c4d0b41SAdrian Hunter 
36086c4d0b41SAdrian Hunter 	asm volatile("vinsertf128 $0x5,%xmm4,%ymm4,%ymm6");
36096c4d0b41SAdrian Hunter 	asm volatile("vinsertf32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
36106c4d0b41SAdrian Hunter 	asm volatile("vinsertf64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
36116c4d0b41SAdrian Hunter 
36126c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 19 */
36136c4d0b41SAdrian Hunter 
36146c4d0b41SAdrian Hunter 	asm volatile("vextractf128 $0x5,%ymm4,%xmm4");
36156c4d0b41SAdrian Hunter 	asm volatile("vextractf32x4 $0x12,%zmm5,%xmm6{%k7}");
36166c4d0b41SAdrian Hunter 	asm volatile("vextractf64x2 $0x12,%zmm5,%xmm6{%k7}");
36176c4d0b41SAdrian Hunter 
36186c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1a */
36196c4d0b41SAdrian Hunter 
36206c4d0b41SAdrian Hunter 	asm volatile("vinsertf32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
36216c4d0b41SAdrian Hunter 	asm volatile("vinsertf64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
36226c4d0b41SAdrian Hunter 
36236c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1b */
36246c4d0b41SAdrian Hunter 
36256c4d0b41SAdrian Hunter 	asm volatile("vextractf32x8 $0x12,%zmm6,%ymm7{%k7}");
36266c4d0b41SAdrian Hunter 	asm volatile("vextractf64x4 $0x12,%zmm6,%ymm7{%k7}");
36276c4d0b41SAdrian Hunter 
36286c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1e */
36296c4d0b41SAdrian Hunter 
36306c4d0b41SAdrian Hunter 	asm volatile("vpcmpud $0x12,%zmm6,%zmm7,%k5");
36316c4d0b41SAdrian Hunter 	asm volatile("vpcmpuq $0x12,%zmm6,%zmm7,%k5");
36326c4d0b41SAdrian Hunter 
36336c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 1f */
36346c4d0b41SAdrian Hunter 
36356c4d0b41SAdrian Hunter 	asm volatile("vpcmpd $0x12,%zmm6,%zmm7,%k5");
36366c4d0b41SAdrian Hunter 	asm volatile("vpcmpq $0x12,%zmm6,%zmm7,%k5");
36376c4d0b41SAdrian Hunter 
36386c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 23 */
36396c4d0b41SAdrian Hunter 
36406c4d0b41SAdrian Hunter 	asm volatile("vshuff32x4 $0x12,%zmm5,%zmm6,%zmm7");
36416c4d0b41SAdrian Hunter 	asm volatile("vshuff64x2 $0x12,%zmm5,%zmm6,%zmm7");
36426c4d0b41SAdrian Hunter 
36436c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 25 */
36446c4d0b41SAdrian Hunter 
36456c4d0b41SAdrian Hunter 	asm volatile("vpternlogd $0x12,%zmm5,%zmm6,%zmm7");
36466c4d0b41SAdrian Hunter 	asm volatile("vpternlogq $0x12,%zmm5,%zmm6,%zmm7");
36476c4d0b41SAdrian Hunter 
36486c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 26 */
36496c4d0b41SAdrian Hunter 
36506c4d0b41SAdrian Hunter 	asm volatile("vgetmantps $0x12,%zmm6,%zmm7");
36516c4d0b41SAdrian Hunter 	asm volatile("vgetmantpd $0x12,%zmm6,%zmm7");
36526c4d0b41SAdrian Hunter 
36536c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 27 */
36546c4d0b41SAdrian Hunter 
36556c4d0b41SAdrian Hunter 	asm volatile("vgetmantss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
36566c4d0b41SAdrian Hunter 	asm volatile("vgetmantsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
36576c4d0b41SAdrian Hunter 
36586c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 38 */
36596c4d0b41SAdrian Hunter 
36606c4d0b41SAdrian Hunter 	asm volatile("vinserti128 $0x5,%xmm4,%ymm4,%ymm6");
36616c4d0b41SAdrian Hunter 	asm volatile("vinserti32x4 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
36626c4d0b41SAdrian Hunter 	asm volatile("vinserti64x2 $0x12,%xmm4,%zmm5,%zmm6{%k7}");
36636c4d0b41SAdrian Hunter 
36646c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 39 */
36656c4d0b41SAdrian Hunter 
36666c4d0b41SAdrian Hunter 	asm volatile("vextracti128 $0x5,%ymm4,%xmm6");
36676c4d0b41SAdrian Hunter 	asm volatile("vextracti32x4 $0x12,%zmm5,%xmm6{%k7}");
36686c4d0b41SAdrian Hunter 	asm volatile("vextracti64x2 $0x12,%zmm5,%xmm6{%k7}");
36696c4d0b41SAdrian Hunter 
36706c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3a */
36716c4d0b41SAdrian Hunter 
36726c4d0b41SAdrian Hunter 	asm volatile("vinserti32x8 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
36736c4d0b41SAdrian Hunter 	asm volatile("vinserti64x4 $0x12,%ymm5,%zmm6,%zmm7{%k7}");
36746c4d0b41SAdrian Hunter 
36756c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3b */
36766c4d0b41SAdrian Hunter 
36776c4d0b41SAdrian Hunter 	asm volatile("vextracti32x8 $0x12,%zmm6,%ymm7{%k7}");
36786c4d0b41SAdrian Hunter 	asm volatile("vextracti64x4 $0x12,%zmm6,%ymm7{%k7}");
36796c4d0b41SAdrian Hunter 
36806c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3e */
36816c4d0b41SAdrian Hunter 
36826c4d0b41SAdrian Hunter 	asm volatile("vpcmpub $0x12,%zmm6,%zmm7,%k5");
36836c4d0b41SAdrian Hunter 	asm volatile("vpcmpuw $0x12,%zmm6,%zmm7,%k5");
36846c4d0b41SAdrian Hunter 
36856c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 3f */
36866c4d0b41SAdrian Hunter 
36876c4d0b41SAdrian Hunter 	asm volatile("vpcmpb $0x12,%zmm6,%zmm7,%k5");
36886c4d0b41SAdrian Hunter 	asm volatile("vpcmpw $0x12,%zmm6,%zmm7,%k5");
36896c4d0b41SAdrian Hunter 
36906c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 42 */
36916c4d0b41SAdrian Hunter 
36926c4d0b41SAdrian Hunter 	asm volatile("vmpsadbw $0x5,%ymm4,%ymm6,%ymm2");
36936c4d0b41SAdrian Hunter 	asm volatile("vdbpsadbw $0x12,%zmm4,%zmm5,%zmm6");
36946c4d0b41SAdrian Hunter 
36956c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 43 */
36966c4d0b41SAdrian Hunter 
36976c4d0b41SAdrian Hunter 	asm volatile("vshufi32x4 $0x12,%zmm5,%zmm6,%zmm7");
36986c4d0b41SAdrian Hunter 	asm volatile("vshufi64x2 $0x12,%zmm5,%zmm6,%zmm7");
36996c4d0b41SAdrian Hunter 
37009adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 44 */
37019adab034SAdrian Hunter 
37029adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%xmm1,%xmm2,%xmm3");
37039adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%ymm1,%ymm2,%ymm3");
37049adab034SAdrian Hunter 	asm volatile("vpclmulqdq $0x12,%zmm1,%zmm2,%zmm3");
37059adab034SAdrian Hunter 
37066c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 50 */
37076c4d0b41SAdrian Hunter 
37086c4d0b41SAdrian Hunter 	asm volatile("vrangeps $0x12,%zmm5,%zmm6,%zmm7");
37096c4d0b41SAdrian Hunter 	asm volatile("vrangepd $0x12,%zmm5,%zmm6,%zmm7");
37106c4d0b41SAdrian Hunter 
37116c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 51 */
37126c4d0b41SAdrian Hunter 
37136c4d0b41SAdrian Hunter 	asm volatile("vrangess $0x12,%xmm5,%xmm6,%xmm7");
37146c4d0b41SAdrian Hunter 	asm volatile("vrangesd $0x12,%xmm5,%xmm6,%xmm7");
37156c4d0b41SAdrian Hunter 
37166c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 54 */
37176c4d0b41SAdrian Hunter 
37186c4d0b41SAdrian Hunter 	asm volatile("vfixupimmps $0x12,%zmm5,%zmm6,%zmm7");
37196c4d0b41SAdrian Hunter 	asm volatile("vfixupimmpd $0x12,%zmm5,%zmm6,%zmm7");
37206c4d0b41SAdrian Hunter 
37216c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 55 */
37226c4d0b41SAdrian Hunter 
37236c4d0b41SAdrian Hunter 	asm volatile("vfixupimmss $0x12,%xmm5,%xmm6,%xmm7{%k7}");
37246c4d0b41SAdrian Hunter 	asm volatile("vfixupimmsd $0x12,%xmm5,%xmm6,%xmm7{%k7}");
37256c4d0b41SAdrian Hunter 
37266c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 56 */
37276c4d0b41SAdrian Hunter 
37286c4d0b41SAdrian Hunter 	asm volatile("vreduceps $0x12,%zmm6,%zmm7");
37296c4d0b41SAdrian Hunter 	asm volatile("vreducepd $0x12,%zmm6,%zmm7");
37306c4d0b41SAdrian Hunter 
37316c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 57 */
37326c4d0b41SAdrian Hunter 
37336c4d0b41SAdrian Hunter 	asm volatile("vreducess $0x12,%xmm5,%xmm6,%xmm7");
37346c4d0b41SAdrian Hunter 	asm volatile("vreducesd $0x12,%xmm5,%xmm6,%xmm7");
37356c4d0b41SAdrian Hunter 
37366c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 66 */
37376c4d0b41SAdrian Hunter 
37386c4d0b41SAdrian Hunter 	asm volatile("vfpclassps $0x12,%zmm7,%k5");
37396c4d0b41SAdrian Hunter 	asm volatile("vfpclasspd $0x12,%zmm7,%k5");
37406c4d0b41SAdrian Hunter 
37416c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 3a 67 */
37426c4d0b41SAdrian Hunter 
37436c4d0b41SAdrian Hunter 	asm volatile("vfpclassss $0x12,%xmm7,%k5");
37446c4d0b41SAdrian Hunter 	asm volatile("vfpclasssd $0x12,%xmm7,%k5");
37456c4d0b41SAdrian Hunter 
37469adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 70 */
37479adab034SAdrian Hunter 
37489adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%xmm1,%xmm2,%xmm3");
37499adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%ymm1,%ymm2,%ymm3");
37509adab034SAdrian Hunter 	asm volatile("vpshldw $0x12,%zmm1,%zmm2,%zmm3");
37519adab034SAdrian Hunter 
37529adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 71 */
37539adab034SAdrian Hunter 
37549adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%xmm1,%xmm2,%xmm3");
37559adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%ymm1,%ymm2,%ymm3");
37569adab034SAdrian Hunter 	asm volatile("vpshldd $0x12,%zmm1,%zmm2,%zmm3");
37579adab034SAdrian Hunter 
37589adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%xmm1,%xmm2,%xmm3");
37599adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%ymm1,%ymm2,%ymm3");
37609adab034SAdrian Hunter 	asm volatile("vpshldq $0x12,%zmm1,%zmm2,%zmm3");
37619adab034SAdrian Hunter 
37629adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 72 */
37639adab034SAdrian Hunter 
37649adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%xmm1,%xmm2,%xmm3");
37659adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%ymm1,%ymm2,%ymm3");
37669adab034SAdrian Hunter 	asm volatile("vpshrdw $0x12,%zmm1,%zmm2,%zmm3");
37679adab034SAdrian Hunter 
37689adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a 73 */
37699adab034SAdrian Hunter 
37709adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%xmm1,%xmm2,%xmm3");
37719adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%ymm1,%ymm2,%ymm3");
37729adab034SAdrian Hunter 	asm volatile("vpshrdd $0x12,%zmm1,%zmm2,%zmm3");
37739adab034SAdrian Hunter 
37749adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%xmm1,%xmm2,%xmm3");
37759adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%ymm1,%ymm2,%ymm3");
37769adab034SAdrian Hunter 	asm volatile("vpshrdq $0x12,%zmm1,%zmm2,%zmm3");
37779adab034SAdrian Hunter 
37789adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a ce */
37799adab034SAdrian Hunter 
37809adab034SAdrian Hunter 	asm volatile("gf2p8affineqb $0x12,%xmm1,%xmm3");
37819adab034SAdrian Hunter 
37829adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%xmm1,%xmm2,%xmm3");
37839adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%ymm1,%ymm2,%ymm3");
37849adab034SAdrian Hunter 	asm volatile("vgf2p8affineqb $0x12,%zmm1,%zmm2,%zmm3");
37859adab034SAdrian Hunter 
37869adab034SAdrian Hunter 	/* AVX-512: Op code 0f 3a cf */
37879adab034SAdrian Hunter 
37889adab034SAdrian Hunter 	asm volatile("gf2p8affineinvqb $0x12,%xmm1,%xmm3");
37899adab034SAdrian Hunter 
37909adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%xmm1,%xmm2,%xmm3");
37919adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%ymm1,%ymm2,%ymm3");
37929adab034SAdrian Hunter 	asm volatile("vgf2p8affineinvqb $0x12,%zmm1,%zmm2,%zmm3");
37939adab034SAdrian Hunter 
37946c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 72 (Grp13) */
37956c4d0b41SAdrian Hunter 
37966c4d0b41SAdrian Hunter 	asm volatile("vprord $0x12,%zmm5,%zmm6");
37976c4d0b41SAdrian Hunter 	asm volatile("vprorq $0x12,%zmm5,%zmm6");
37986c4d0b41SAdrian Hunter 	asm volatile("vprold $0x12,%zmm5,%zmm6");
37996c4d0b41SAdrian Hunter 	asm volatile("vprolq $0x12,%zmm5,%zmm6");
38006c4d0b41SAdrian Hunter 	asm volatile("psrad  $0x2,%mm6");
38016c4d0b41SAdrian Hunter 	asm volatile("vpsrad $0x5,%ymm6,%ymm2");
38026c4d0b41SAdrian Hunter 	asm volatile("vpsrad $0x5,%zmm6,%zmm2");
38036c4d0b41SAdrian Hunter 	asm volatile("vpsraq $0x5,%zmm6,%zmm2");
38046c4d0b41SAdrian Hunter 
38056c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c6 (Grp18) */
38066c4d0b41SAdrian Hunter 
38076c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
38086c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
38096c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
38106c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
38116c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0dps 0x7b(%ebp,%zmm7,8){%k1}");
38126c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0dpd 0x7b(%ebp,%ymm7,8){%k1}");
38136c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1dps 0x7b(%ebp,%zmm7,8){%k1}");
38146c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1dpd 0x7b(%ebp,%ymm7,8){%k1}");
38156c4d0b41SAdrian Hunter 
38166c4d0b41SAdrian Hunter 	/* AVX-512: Op code 0f 38 c7 (Grp19) */
38176c4d0b41SAdrian Hunter 
38186c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
38196c4d0b41SAdrian Hunter 	asm volatile("vgatherpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
38206c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
38216c4d0b41SAdrian Hunter 	asm volatile("vgatherpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
38226c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0qps 0x7b(%ebp,%zmm7,8){%k1}");
38236c4d0b41SAdrian Hunter 	asm volatile("vscatterpf0qpd 0x7b(%ebp,%zmm7,8){%k1}");
38246c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1qps 0x7b(%ebp,%zmm7,8){%k1}");
38256c4d0b41SAdrian Hunter 	asm volatile("vscatterpf1qpd 0x7b(%ebp,%zmm7,8){%k1}");
38266c4d0b41SAdrian Hunter 
38276c4d0b41SAdrian Hunter 	/* AVX-512: Examples */
38286c4d0b41SAdrian Hunter 
38296c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm4,%zmm5,%zmm6");
38306c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}");
38316c4d0b41SAdrian Hunter 	asm volatile("vaddpd %zmm4,%zmm5,%zmm6{%k7}{z}");
38326c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rn-sae},%zmm4,%zmm5,%zmm6");
38336c4d0b41SAdrian Hunter 	asm volatile("vaddpd {ru-sae},%zmm4,%zmm5,%zmm6");
38346c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rd-sae},%zmm4,%zmm5,%zmm6");
38356c4d0b41SAdrian Hunter 	asm volatile("vaddpd {rz-sae},%zmm4,%zmm5,%zmm6");
38366c4d0b41SAdrian Hunter 	asm volatile("vaddpd (%ecx),%zmm5,%zmm6");
38376c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x123(%eax,%ecx,8),%zmm5,%zmm6");
38386c4d0b41SAdrian Hunter 	asm volatile("vaddpd (%ecx){1to8},%zmm5,%zmm6");
38396c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x1fc0(%edx),%zmm5,%zmm6");
38406c4d0b41SAdrian Hunter 	asm volatile("vaddpd 0x3f8(%edx){1to8},%zmm5,%zmm6");
38416c4d0b41SAdrian Hunter 	asm volatile("vcmpeq_uqps 0x1fc(%edx){1to16},%zmm6,%k5");
38426c4d0b41SAdrian Hunter 	asm volatile("vcmpltsd 0x123(%eax,%ecx,8),%xmm3,%k5{%k7}");
38436c4d0b41SAdrian Hunter 	asm volatile("vcmplesd {sae},%xmm4,%xmm5,%k5{%k7}");
38446c4d0b41SAdrian Hunter 	asm volatile("vgetmantss $0x5b,0x123(%eax,%ecx,8),%xmm4,%xmm5{%k7}");
38456c4d0b41SAdrian Hunter 
3846d8b167f9SMatt Fleming 	/* bndmk m32, bnd */
3847d8b167f9SMatt Fleming 
3848d8b167f9SMatt Fleming 	asm volatile("bndmk (%eax), %bnd0");
3849d8b167f9SMatt Fleming 	asm volatile("bndmk (0x12345678), %bnd0");
3850d8b167f9SMatt Fleming 	asm volatile("bndmk (%eax), %bnd3");
3851d8b167f9SMatt Fleming 	asm volatile("bndmk (%ecx,%eax,1), %bnd0");
3852d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(,%eax,1), %bnd0");
3853d8b167f9SMatt Fleming 	asm volatile("bndmk (%eax,%ecx,1), %bnd0");
3854d8b167f9SMatt Fleming 	asm volatile("bndmk (%eax,%ecx,8), %bnd0");
3855d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%eax), %bnd0");
3856d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%ebp), %bnd0");
3857d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%ecx,%eax,1), %bnd0");
3858d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%ebp,%eax,1), %bnd0");
3859d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%eax,%ecx,1), %bnd0");
3860d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12(%eax,%ecx,8), %bnd0");
3861d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%eax), %bnd0");
3862d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%ebp), %bnd0");
3863d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%ecx,%eax,1), %bnd0");
3864d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%ebp,%eax,1), %bnd0");
3865d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%eax,%ecx,1), %bnd0");
3866d8b167f9SMatt Fleming 	asm volatile("bndmk 0x12345678(%eax,%ecx,8), %bnd0");
3867d8b167f9SMatt Fleming 
3868d8b167f9SMatt Fleming 	/* bndcl r/m32, bnd */
3869d8b167f9SMatt Fleming 
3870d8b167f9SMatt Fleming 	asm volatile("bndcl (%eax), %bnd0");
3871d8b167f9SMatt Fleming 	asm volatile("bndcl (0x12345678), %bnd0");
3872d8b167f9SMatt Fleming 	asm volatile("bndcl (%eax), %bnd3");
3873d8b167f9SMatt Fleming 	asm volatile("bndcl (%ecx,%eax,1), %bnd0");
3874d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(,%eax,1), %bnd0");
3875d8b167f9SMatt Fleming 	asm volatile("bndcl (%eax,%ecx,1), %bnd0");
3876d8b167f9SMatt Fleming 	asm volatile("bndcl (%eax,%ecx,8), %bnd0");
3877d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%eax), %bnd0");
3878d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%ebp), %bnd0");
3879d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%ecx,%eax,1), %bnd0");
3880d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%ebp,%eax,1), %bnd0");
3881d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%eax,%ecx,1), %bnd0");
3882d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12(%eax,%ecx,8), %bnd0");
3883d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%eax), %bnd0");
3884d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%ebp), %bnd0");
3885d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%ecx,%eax,1), %bnd0");
3886d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%ebp,%eax,1), %bnd0");
3887d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%eax,%ecx,1), %bnd0");
3888d8b167f9SMatt Fleming 	asm volatile("bndcl 0x12345678(%eax,%ecx,8), %bnd0");
3889d8b167f9SMatt Fleming 	asm volatile("bndcl %eax, %bnd0");
3890d8b167f9SMatt Fleming 
3891d8b167f9SMatt Fleming 	/* bndcu r/m32, bnd */
3892d8b167f9SMatt Fleming 
3893d8b167f9SMatt Fleming 	asm volatile("bndcu (%eax), %bnd0");
3894d8b167f9SMatt Fleming 	asm volatile("bndcu (0x12345678), %bnd0");
3895d8b167f9SMatt Fleming 	asm volatile("bndcu (%eax), %bnd3");
3896d8b167f9SMatt Fleming 	asm volatile("bndcu (%ecx,%eax,1), %bnd0");
3897d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(,%eax,1), %bnd0");
3898d8b167f9SMatt Fleming 	asm volatile("bndcu (%eax,%ecx,1), %bnd0");
3899d8b167f9SMatt Fleming 	asm volatile("bndcu (%eax,%ecx,8), %bnd0");
3900d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%eax), %bnd0");
3901d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%ebp), %bnd0");
3902d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%ecx,%eax,1), %bnd0");
3903d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%ebp,%eax,1), %bnd0");
3904d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%eax,%ecx,1), %bnd0");
3905d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12(%eax,%ecx,8), %bnd0");
3906d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%eax), %bnd0");
3907d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%ebp), %bnd0");
3908d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%ecx,%eax,1), %bnd0");
3909d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%ebp,%eax,1), %bnd0");
3910d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%eax,%ecx,1), %bnd0");
3911d8b167f9SMatt Fleming 	asm volatile("bndcu 0x12345678(%eax,%ecx,8), %bnd0");
3912d8b167f9SMatt Fleming 	asm volatile("bndcu %eax, %bnd0");
3913d8b167f9SMatt Fleming 
3914d8b167f9SMatt Fleming 	/* bndcn r/m32, bnd */
3915d8b167f9SMatt Fleming 
3916d8b167f9SMatt Fleming 	asm volatile("bndcn (%eax), %bnd0");
3917d8b167f9SMatt Fleming 	asm volatile("bndcn (0x12345678), %bnd0");
3918d8b167f9SMatt Fleming 	asm volatile("bndcn (%eax), %bnd3");
3919d8b167f9SMatt Fleming 	asm volatile("bndcn (%ecx,%eax,1), %bnd0");
3920d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(,%eax,1), %bnd0");
3921d8b167f9SMatt Fleming 	asm volatile("bndcn (%eax,%ecx,1), %bnd0");
3922d8b167f9SMatt Fleming 	asm volatile("bndcn (%eax,%ecx,8), %bnd0");
3923d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%eax), %bnd0");
3924d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%ebp), %bnd0");
3925d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%ecx,%eax,1), %bnd0");
3926d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%ebp,%eax,1), %bnd0");
3927d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%eax,%ecx,1), %bnd0");
3928d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12(%eax,%ecx,8), %bnd0");
3929d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%eax), %bnd0");
3930d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%ebp), %bnd0");
3931d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%ecx,%eax,1), %bnd0");
3932d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%ebp,%eax,1), %bnd0");
3933d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%eax,%ecx,1), %bnd0");
3934d8b167f9SMatt Fleming 	asm volatile("bndcn 0x12345678(%eax,%ecx,8), %bnd0");
3935d8b167f9SMatt Fleming 	asm volatile("bndcn %eax, %bnd0");
3936d8b167f9SMatt Fleming 
3937d8b167f9SMatt Fleming 	/* bndmov m64, bnd */
3938d8b167f9SMatt Fleming 
3939d8b167f9SMatt Fleming 	asm volatile("bndmov (%eax), %bnd0");
3940d8b167f9SMatt Fleming 	asm volatile("bndmov (0x12345678), %bnd0");
3941d8b167f9SMatt Fleming 	asm volatile("bndmov (%eax), %bnd3");
3942d8b167f9SMatt Fleming 	asm volatile("bndmov (%ecx,%eax,1), %bnd0");
3943d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(,%eax,1), %bnd0");
3944d8b167f9SMatt Fleming 	asm volatile("bndmov (%eax,%ecx,1), %bnd0");
3945d8b167f9SMatt Fleming 	asm volatile("bndmov (%eax,%ecx,8), %bnd0");
3946d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%eax), %bnd0");
3947d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%ebp), %bnd0");
3948d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%ecx,%eax,1), %bnd0");
3949d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%ebp,%eax,1), %bnd0");
3950d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%eax,%ecx,1), %bnd0");
3951d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12(%eax,%ecx,8), %bnd0");
3952d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%eax), %bnd0");
3953d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%ebp), %bnd0");
3954d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%ecx,%eax,1), %bnd0");
3955d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%ebp,%eax,1), %bnd0");
3956d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%eax,%ecx,1), %bnd0");
3957d8b167f9SMatt Fleming 	asm volatile("bndmov 0x12345678(%eax,%ecx,8), %bnd0");
3958d8b167f9SMatt Fleming 
3959d8b167f9SMatt Fleming 	/* bndmov bnd, m64 */
3960d8b167f9SMatt Fleming 
3961d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%eax)");
3962d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (0x12345678)");
3963d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd3, (%eax)");
3964d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%ecx,%eax,1)");
3965d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(,%eax,1)");
3966d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%eax,%ecx,1)");
3967d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, (%eax,%ecx,8)");
3968d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%eax)");
3969d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%ebp)");
3970d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%ecx,%eax,1)");
3971d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%ebp,%eax,1)");
3972d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,1)");
3973d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12(%eax,%ecx,8)");
3974d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%eax)");
3975d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%ebp)");
3976d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%ecx,%eax,1)");
3977d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%ebp,%eax,1)");
3978d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,1)");
3979d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, 0x12345678(%eax,%ecx,8)");
3980d8b167f9SMatt Fleming 
3981d8b167f9SMatt Fleming 	/* bndmov bnd2, bnd1 */
3982d8b167f9SMatt Fleming 
3983d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd0, %bnd1");
3984d8b167f9SMatt Fleming 	asm volatile("bndmov %bnd1, %bnd0");
3985d8b167f9SMatt Fleming 
3986d8b167f9SMatt Fleming 	/* bndldx mib, bnd */
3987d8b167f9SMatt Fleming 
3988d8b167f9SMatt Fleming 	asm volatile("bndldx (%eax), %bnd0");
3989d8b167f9SMatt Fleming 	asm volatile("bndldx (0x12345678), %bnd0");
3990d8b167f9SMatt Fleming 	asm volatile("bndldx (%eax), %bnd3");
3991d8b167f9SMatt Fleming 	asm volatile("bndldx (%ecx,%eax,1), %bnd0");
3992d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(,%eax,1), %bnd0");
3993d8b167f9SMatt Fleming 	asm volatile("bndldx (%eax,%ecx,1), %bnd0");
3994d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%eax), %bnd0");
3995d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%ebp), %bnd0");
3996d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%ecx,%eax,1), %bnd0");
3997d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%ebp,%eax,1), %bnd0");
3998d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12(%eax,%ecx,1), %bnd0");
3999d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%eax), %bnd0");
4000d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%ebp), %bnd0");
4001d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%ecx,%eax,1), %bnd0");
4002d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%ebp,%eax,1), %bnd0");
4003d8b167f9SMatt Fleming 	asm volatile("bndldx 0x12345678(%eax,%ecx,1), %bnd0");
4004d8b167f9SMatt Fleming 
4005d8b167f9SMatt Fleming 	/* bndstx bnd, mib */
4006d8b167f9SMatt Fleming 
4007d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%eax)");
4008d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (0x12345678)");
4009d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd3, (%eax)");
4010d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%ecx,%eax,1)");
4011d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(,%eax,1)");
4012d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, (%eax,%ecx,1)");
4013d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%eax)");
4014d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%ebp)");
4015d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%ecx,%eax,1)");
4016d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%ebp,%eax,1)");
4017d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12(%eax,%ecx,1)");
4018d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%eax)");
4019d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%ebp)");
4020d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%ecx,%eax,1)");
4021d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%ebp,%eax,1)");
4022d8b167f9SMatt Fleming 	asm volatile("bndstx %bnd0, 0x12345678(%eax,%ecx,1)");
4023d8b167f9SMatt Fleming 
4024d8b167f9SMatt Fleming 	/* bnd prefix on call, ret, jmp and all jcc */
4025d8b167f9SMatt Fleming 
4026d8b167f9SMatt Fleming 	asm volatile("bnd call label1");  /* Expecting: call unconditional 0xfffffffc */
4027d8b167f9SMatt Fleming 	asm volatile("bnd call *(%eax)"); /* Expecting: call indirect      0 */
4028d8b167f9SMatt Fleming 	asm volatile("bnd ret");          /* Expecting: ret  indirect      0 */
4029d8b167f9SMatt Fleming 	asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4030d8b167f9SMatt Fleming 	asm volatile("bnd jmp label1");   /* Expecting: jmp  unconditional 0xfffffffc */
4031d8b167f9SMatt Fleming 	asm volatile("bnd jmp *(%ecx)");  /* Expecting: jmp  indirect      0 */
4032d8b167f9SMatt Fleming 	asm volatile("bnd jne label1");   /* Expecting: jcc  conditional   0xfffffffc */
4033d8b167f9SMatt Fleming 
4034d8b167f9SMatt Fleming 	/* sha1rnds4 imm8, xmm2/m128, xmm1 */
4035d8b167f9SMatt Fleming 
4036d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x0, %xmm1, %xmm0");
4037d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, %xmm7, %xmm2");
4038d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%eax), %xmm0");
4039d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (0x12345678), %xmm0");
4040d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%eax), %xmm3");
4041d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%ecx,%eax,1), %xmm0");
4042d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(,%eax,1), %xmm0");
4043d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%eax,%ecx,1), %xmm0");
4044d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, (%eax,%ecx,8), %xmm0");
4045d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%eax), %xmm0");
4046d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%ebp), %xmm0");
4047d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%ecx,%eax,1), %xmm0");
4048d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%ebp,%eax,1), %xmm0");
4049d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,1), %xmm0");
4050d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12(%eax,%ecx,8), %xmm0");
4051d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%eax), %xmm0");
4052d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp), %xmm0");
4053d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%ecx,%eax,1), %xmm0");
4054d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%ebp,%eax,1), %xmm0");
4055d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,1), %xmm0");
4056d8b167f9SMatt Fleming 	asm volatile("sha1rnds4 $0x91, 0x12345678(%eax,%ecx,8), %xmm0");
4057d8b167f9SMatt Fleming 
4058d8b167f9SMatt Fleming 	/* sha1nexte xmm2/m128, xmm1 */
4059d8b167f9SMatt Fleming 
4060d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm1, %xmm0");
4061d8b167f9SMatt Fleming 	asm volatile("sha1nexte %xmm7, %xmm2");
4062d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%eax), %xmm0");
4063d8b167f9SMatt Fleming 	asm volatile("sha1nexte (0x12345678), %xmm0");
4064d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%eax), %xmm3");
4065d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%ecx,%eax,1), %xmm0");
4066d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(,%eax,1), %xmm0");
4067d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%eax,%ecx,1), %xmm0");
4068d8b167f9SMatt Fleming 	asm volatile("sha1nexte (%eax,%ecx,8), %xmm0");
4069d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%eax), %xmm0");
4070d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%ebp), %xmm0");
4071d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%ecx,%eax,1), %xmm0");
4072d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%ebp,%eax,1), %xmm0");
4073d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%eax,%ecx,1), %xmm0");
4074d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12(%eax,%ecx,8), %xmm0");
4075d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%eax), %xmm0");
4076d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%ebp), %xmm0");
4077d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%ecx,%eax,1), %xmm0");
4078d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%ebp,%eax,1), %xmm0");
4079d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%eax,%ecx,1), %xmm0");
4080d8b167f9SMatt Fleming 	asm volatile("sha1nexte 0x12345678(%eax,%ecx,8), %xmm0");
4081d8b167f9SMatt Fleming 
4082d8b167f9SMatt Fleming 	/* sha1msg1 xmm2/m128, xmm1 */
4083d8b167f9SMatt Fleming 
4084d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm1, %xmm0");
4085d8b167f9SMatt Fleming 	asm volatile("sha1msg1 %xmm7, %xmm2");
4086d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%eax), %xmm0");
4087d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (0x12345678), %xmm0");
4088d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%eax), %xmm3");
4089d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%ecx,%eax,1), %xmm0");
4090d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(,%eax,1), %xmm0");
4091d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%eax,%ecx,1), %xmm0");
4092d8b167f9SMatt Fleming 	asm volatile("sha1msg1 (%eax,%ecx,8), %xmm0");
4093d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%eax), %xmm0");
4094d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%ebp), %xmm0");
4095d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%ecx,%eax,1), %xmm0");
4096d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%ebp,%eax,1), %xmm0");
4097d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%eax,%ecx,1), %xmm0");
4098d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12(%eax,%ecx,8), %xmm0");
4099d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%eax), %xmm0");
4100d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%ebp), %xmm0");
4101d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%ecx,%eax,1), %xmm0");
4102d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%ebp,%eax,1), %xmm0");
4103d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%eax,%ecx,1), %xmm0");
4104d8b167f9SMatt Fleming 	asm volatile("sha1msg1 0x12345678(%eax,%ecx,8), %xmm0");
4105d8b167f9SMatt Fleming 
4106d8b167f9SMatt Fleming 	/* sha1msg2 xmm2/m128, xmm1 */
4107d8b167f9SMatt Fleming 
4108d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm1, %xmm0");
4109d8b167f9SMatt Fleming 	asm volatile("sha1msg2 %xmm7, %xmm2");
4110d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%eax), %xmm0");
4111d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (0x12345678), %xmm0");
4112d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%eax), %xmm3");
4113d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%ecx,%eax,1), %xmm0");
4114d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(,%eax,1), %xmm0");
4115d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%eax,%ecx,1), %xmm0");
4116d8b167f9SMatt Fleming 	asm volatile("sha1msg2 (%eax,%ecx,8), %xmm0");
4117d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%eax), %xmm0");
4118d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%ebp), %xmm0");
4119d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%ecx,%eax,1), %xmm0");
4120d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%ebp,%eax,1), %xmm0");
4121d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%eax,%ecx,1), %xmm0");
4122d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12(%eax,%ecx,8), %xmm0");
4123d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%eax), %xmm0");
4124d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%ebp), %xmm0");
4125d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%ecx,%eax,1), %xmm0");
4126d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%ebp,%eax,1), %xmm0");
4127d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%eax,%ecx,1), %xmm0");
4128d8b167f9SMatt Fleming 	asm volatile("sha1msg2 0x12345678(%eax,%ecx,8), %xmm0");
4129d8b167f9SMatt Fleming 
4130d8b167f9SMatt Fleming 	/* sha256rnds2 <XMM0>, xmm2/m128, xmm1 */
4131d8b167f9SMatt Fleming 	/* Note sha256rnds2 has an implicit operand 'xmm0' */
4132d8b167f9SMatt Fleming 
4133d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm4, %xmm1");
4134d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 %xmm7, %xmm2");
4135d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%eax), %xmm1");
4136d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (0x12345678), %xmm1");
4137d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%eax), %xmm3");
4138d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%ecx,%eax,1), %xmm1");
4139d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(,%eax,1), %xmm1");
4140d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%eax,%ecx,1), %xmm1");
4141d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 (%eax,%ecx,8), %xmm1");
4142d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%eax), %xmm1");
4143d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%ebp), %xmm1");
4144d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%ecx,%eax,1), %xmm1");
4145d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%ebp,%eax,1), %xmm1");
4146d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%eax,%ecx,1), %xmm1");
4147d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12(%eax,%ecx,8), %xmm1");
4148d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%eax), %xmm1");
4149d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%ebp), %xmm1");
4150d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%ecx,%eax,1), %xmm1");
4151d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%ebp,%eax,1), %xmm1");
4152d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%eax,%ecx,1), %xmm1");
4153d8b167f9SMatt Fleming 	asm volatile("sha256rnds2 0x12345678(%eax,%ecx,8), %xmm1");
4154d8b167f9SMatt Fleming 
4155d8b167f9SMatt Fleming 	/* sha256msg1 xmm2/m128, xmm1 */
4156d8b167f9SMatt Fleming 
4157d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm1, %xmm0");
4158d8b167f9SMatt Fleming 	asm volatile("sha256msg1 %xmm7, %xmm2");
4159d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%eax), %xmm0");
4160d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (0x12345678), %xmm0");
4161d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%eax), %xmm3");
4162d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%ecx,%eax,1), %xmm0");
4163d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(,%eax,1), %xmm0");
4164d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%eax,%ecx,1), %xmm0");
4165d8b167f9SMatt Fleming 	asm volatile("sha256msg1 (%eax,%ecx,8), %xmm0");
4166d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%eax), %xmm0");
4167d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%ebp), %xmm0");
4168d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%ecx,%eax,1), %xmm0");
4169d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%ebp,%eax,1), %xmm0");
4170d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%eax,%ecx,1), %xmm0");
4171d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12(%eax,%ecx,8), %xmm0");
4172d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%eax), %xmm0");
4173d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%ebp), %xmm0");
4174d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%ecx,%eax,1), %xmm0");
4175d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%ebp,%eax,1), %xmm0");
4176d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%eax,%ecx,1), %xmm0");
4177d8b167f9SMatt Fleming 	asm volatile("sha256msg1 0x12345678(%eax,%ecx,8), %xmm0");
4178d8b167f9SMatt Fleming 
4179d8b167f9SMatt Fleming 	/* sha256msg2 xmm2/m128, xmm1 */
4180d8b167f9SMatt Fleming 
4181d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm1, %xmm0");
4182d8b167f9SMatt Fleming 	asm volatile("sha256msg2 %xmm7, %xmm2");
4183d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%eax), %xmm0");
4184d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (0x12345678), %xmm0");
4185d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%eax), %xmm3");
4186d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%ecx,%eax,1), %xmm0");
4187d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(,%eax,1), %xmm0");
4188d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%eax,%ecx,1), %xmm0");
4189d8b167f9SMatt Fleming 	asm volatile("sha256msg2 (%eax,%ecx,8), %xmm0");
4190d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%eax), %xmm0");
4191d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%ebp), %xmm0");
4192d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%ecx,%eax,1), %xmm0");
4193d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%ebp,%eax,1), %xmm0");
4194d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%eax,%ecx,1), %xmm0");
4195d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12(%eax,%ecx,8), %xmm0");
4196d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%eax), %xmm0");
4197d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%ebp), %xmm0");
4198d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%ecx,%eax,1), %xmm0");
4199d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%ebp,%eax,1), %xmm0");
4200d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%eax,%ecx,1), %xmm0");
4201d8b167f9SMatt Fleming 	asm volatile("sha256msg2 0x12345678(%eax,%ecx,8), %xmm0");
4202d8b167f9SMatt Fleming 
4203d8b167f9SMatt Fleming 	/* clflushopt m8 */
4204d8b167f9SMatt Fleming 
4205d8b167f9SMatt Fleming 	asm volatile("clflushopt (%eax)");
4206d8b167f9SMatt Fleming 	asm volatile("clflushopt (0x12345678)");
4207d8b167f9SMatt Fleming 	asm volatile("clflushopt 0x12345678(%eax,%ecx,8)");
4208d8b167f9SMatt Fleming 	/* Also check instructions in the same group encoding as clflushopt */
4209d8b167f9SMatt Fleming 	asm volatile("clflush (%eax)");
4210d8b167f9SMatt Fleming 	asm volatile("sfence");
4211d8b167f9SMatt Fleming 
4212d8b167f9SMatt Fleming 	/* clwb m8 */
4213d8b167f9SMatt Fleming 
4214d8b167f9SMatt Fleming 	asm volatile("clwb (%eax)");
4215d8b167f9SMatt Fleming 	asm volatile("clwb (0x12345678)");
4216d8b167f9SMatt Fleming 	asm volatile("clwb 0x12345678(%eax,%ecx,8)");
4217d8b167f9SMatt Fleming 	/* Also check instructions in the same group encoding as clwb */
4218d8b167f9SMatt Fleming 	asm volatile("xsaveopt (%eax)");
4219d8b167f9SMatt Fleming 	asm volatile("mfence");
4220d8b167f9SMatt Fleming 
42211e5f0154SAdrian Hunter 	/* cldemote m8 */
42221e5f0154SAdrian Hunter 
42231e5f0154SAdrian Hunter 	asm volatile("cldemote (%eax)");
42241e5f0154SAdrian Hunter 	asm volatile("cldemote (0x12345678)");
42251e5f0154SAdrian Hunter 	asm volatile("cldemote 0x12345678(%eax,%ecx,8)");
42261e5f0154SAdrian Hunter 
4227d8b167f9SMatt Fleming 	/* xsavec mem */
4228d8b167f9SMatt Fleming 
4229d8b167f9SMatt Fleming 	asm volatile("xsavec (%eax)");
4230d8b167f9SMatt Fleming 	asm volatile("xsavec (0x12345678)");
4231d8b167f9SMatt Fleming 	asm volatile("xsavec 0x12345678(%eax,%ecx,8)");
4232d8b167f9SMatt Fleming 
4233d8b167f9SMatt Fleming 	/* xsaves mem */
4234d8b167f9SMatt Fleming 
4235d8b167f9SMatt Fleming 	asm volatile("xsaves (%eax)");
4236d8b167f9SMatt Fleming 	asm volatile("xsaves (0x12345678)");
4237d8b167f9SMatt Fleming 	asm volatile("xsaves 0x12345678(%eax,%ecx,8)");
4238d8b167f9SMatt Fleming 
4239d8b167f9SMatt Fleming 	/* xrstors mem */
4240d8b167f9SMatt Fleming 
4241d8b167f9SMatt Fleming 	asm volatile("xrstors (%eax)");
4242d8b167f9SMatt Fleming 	asm volatile("xrstors (0x12345678)");
4243d8b167f9SMatt Fleming 	asm volatile("xrstors 0x12345678(%eax,%ecx,8)");
4244d8b167f9SMatt Fleming 
4245d5b1a5f6SAdrian Hunter 	/* ptwrite */
4246d5b1a5f6SAdrian Hunter 
4247d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite (%eax)");
4248d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite (0x12345678)");
4249d5b1a5f6SAdrian Hunter 	asm volatile("ptwrite 0x12345678(%eax,%ecx,8)");
4250d5b1a5f6SAdrian Hunter 
4251d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel (%eax)");
4252d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel (0x12345678)");
4253d5b1a5f6SAdrian Hunter 	asm volatile("ptwritel 0x12345678(%eax,%ecx,8)");
4254d5b1a5f6SAdrian Hunter 
42551e5f0154SAdrian Hunter 	/* tpause */
42561e5f0154SAdrian Hunter 
42571e5f0154SAdrian Hunter 	asm volatile("tpause %ebx");
42581e5f0154SAdrian Hunter 
42591e5f0154SAdrian Hunter 	/* umonitor */
42601e5f0154SAdrian Hunter 
42611e5f0154SAdrian Hunter 	asm volatile("umonitor %ax");
42621e5f0154SAdrian Hunter 	asm volatile("umonitor %eax");
42631e5f0154SAdrian Hunter 
42641e5f0154SAdrian Hunter 	/* umwait */
42651e5f0154SAdrian Hunter 
42661e5f0154SAdrian Hunter 	asm volatile("umwait %eax");
42671e5f0154SAdrian Hunter 
42681e5f0154SAdrian Hunter 	/* movdiri */
42691e5f0154SAdrian Hunter 
42701e5f0154SAdrian Hunter 	asm volatile("movdiri %eax,(%ebx)");
42711e5f0154SAdrian Hunter 	asm volatile("movdiri %ecx,0x12345678(%eax)");
42721e5f0154SAdrian Hunter 
42731e5f0154SAdrian Hunter 	/* movdir64b */
42741e5f0154SAdrian Hunter 
42751e5f0154SAdrian Hunter 	asm volatile("movdir64b (%eax),%ebx");
42761e5f0154SAdrian Hunter 	asm volatile("movdir64b 0x12345678(%eax),%ecx");
42771e5f0154SAdrian Hunter 	asm volatile("movdir64b (%si),%bx");
42781e5f0154SAdrian Hunter 	asm volatile("movdir64b 0x1234(%si),%cx");
42791e5f0154SAdrian Hunter 
42801e5f0154SAdrian Hunter 	/* enqcmd */
42811e5f0154SAdrian Hunter 
42821e5f0154SAdrian Hunter 	asm volatile("enqcmd (%eax),%ebx");
42831e5f0154SAdrian Hunter 	asm volatile("enqcmd 0x12345678(%eax),%ecx");
42841e5f0154SAdrian Hunter 	asm volatile("enqcmd (%si),%bx");
42851e5f0154SAdrian Hunter 	asm volatile("enqcmd 0x1234(%si),%cx");
42861e5f0154SAdrian Hunter 
42871e5f0154SAdrian Hunter 	/* enqcmds */
42881e5f0154SAdrian Hunter 
42891e5f0154SAdrian Hunter 	asm volatile("enqcmds (%eax),%ebx");
42901e5f0154SAdrian Hunter 	asm volatile("enqcmds 0x12345678(%eax),%ecx");
42911e5f0154SAdrian Hunter 	asm volatile("enqcmds (%si),%bx");
42921e5f0154SAdrian Hunter 	asm volatile("enqcmds 0x1234(%si),%cx");
42931e5f0154SAdrian Hunter 
42941032f326SAdrian Hunter 	/* incsspd */
42951032f326SAdrian Hunter 
42961032f326SAdrian Hunter 	asm volatile("incsspd %eax");
42971032f326SAdrian Hunter 	/* Also check instructions in the same group encoding as incsspd */
42981032f326SAdrian Hunter 	asm volatile("xrstor (%eax)");
42991032f326SAdrian Hunter 	asm volatile("xrstor (0x12345678)");
43001032f326SAdrian Hunter 	asm volatile("xrstor 0x12345678(%eax,%ecx,8)");
43011032f326SAdrian Hunter 	asm volatile("lfence");
43021032f326SAdrian Hunter 
43031032f326SAdrian Hunter 	/* rdsspd */
43041032f326SAdrian Hunter 
43051032f326SAdrian Hunter 	asm volatile("rdsspd %eax");
43061032f326SAdrian Hunter 
43071032f326SAdrian Hunter 	/* saveprevssp */
43081032f326SAdrian Hunter 
43091032f326SAdrian Hunter 	asm volatile("saveprevssp");
43101032f326SAdrian Hunter 
43111032f326SAdrian Hunter 	/* rstorssp */
43121032f326SAdrian Hunter 
43131032f326SAdrian Hunter 	asm volatile("rstorssp (%eax)");
43141032f326SAdrian Hunter 	asm volatile("rstorssp (0x12345678)");
43151032f326SAdrian Hunter 	asm volatile("rstorssp 0x12345678(%eax,%ecx,8)");
43161032f326SAdrian Hunter 
43171032f326SAdrian Hunter 	/* wrssd */
43181032f326SAdrian Hunter 
43191032f326SAdrian Hunter 	asm volatile("wrssd %ecx,(%eax)");
43201032f326SAdrian Hunter 	asm volatile("wrssd %edx,(0x12345678)");
43211032f326SAdrian Hunter 	asm volatile("wrssd %edx,0x12345678(%eax,%ecx,8)");
43221032f326SAdrian Hunter 
43231032f326SAdrian Hunter 	/* wrussd */
43241032f326SAdrian Hunter 
43251032f326SAdrian Hunter 	asm volatile("wrussd %ecx,(%eax)");
43261032f326SAdrian Hunter 	asm volatile("wrussd %edx,(0x12345678)");
43271032f326SAdrian Hunter 	asm volatile("wrussd %edx,0x12345678(%eax,%ecx,8)");
43281032f326SAdrian Hunter 
43291032f326SAdrian Hunter 	/* setssbsy */
43301032f326SAdrian Hunter 
43311032f326SAdrian Hunter 	asm volatile("setssbsy");
43321032f326SAdrian Hunter 	/* Also check instructions in the same group encoding as setssbsy */
43331032f326SAdrian Hunter 	asm volatile("rdpkru");
43341032f326SAdrian Hunter 	asm volatile("wrpkru");
43351032f326SAdrian Hunter 
43361032f326SAdrian Hunter 	/* clrssbsy */
43371032f326SAdrian Hunter 
43381032f326SAdrian Hunter 	asm volatile("clrssbsy (%eax)");
43391032f326SAdrian Hunter 	asm volatile("clrssbsy (0x12345678)");
43401032f326SAdrian Hunter 	asm volatile("clrssbsy 0x12345678(%eax,%ecx,8)");
43411032f326SAdrian Hunter 
43421032f326SAdrian Hunter 	/* endbr32/64 */
43431032f326SAdrian Hunter 
43441032f326SAdrian Hunter 	asm volatile("endbr32");
43451032f326SAdrian Hunter 	asm volatile("endbr64");
43461032f326SAdrian Hunter 
43471032f326SAdrian Hunter 	/* call with/without notrack prefix */
43481032f326SAdrian Hunter 
43491032f326SAdrian Hunter 	asm volatile("call *%eax");				/* Expecting: call indirect 0 */
43501032f326SAdrian Hunter 	asm volatile("call *(%eax)");				/* Expecting: call indirect 0 */
43511032f326SAdrian Hunter 	asm volatile("call *(0x12345678)");			/* Expecting: call indirect 0 */
43521032f326SAdrian Hunter 	asm volatile("call *0x12345678(%eax,%ecx,8)");		/* Expecting: call indirect 0 */
43531032f326SAdrian Hunter 
43541032f326SAdrian Hunter 	asm volatile("bnd call *%eax");				/* Expecting: call indirect 0 */
43551032f326SAdrian Hunter 	asm volatile("bnd call *(%eax)");			/* Expecting: call indirect 0 */
43561032f326SAdrian Hunter 	asm volatile("bnd call *(0x12345678)");			/* Expecting: call indirect 0 */
43571032f326SAdrian Hunter 	asm volatile("bnd call *0x12345678(%eax,%ecx,8)");	/* Expecting: call indirect 0 */
43581032f326SAdrian Hunter 
43591032f326SAdrian Hunter 	asm volatile("notrack call *%eax");			/* Expecting: call indirect 0 */
43601032f326SAdrian Hunter 	asm volatile("notrack call *(%eax)");			/* Expecting: call indirect 0 */
43611032f326SAdrian Hunter 	asm volatile("notrack call *(0x12345678)");		/* Expecting: call indirect 0 */
43621032f326SAdrian Hunter 	asm volatile("notrack call *0x12345678(%eax,%ecx,8)");	/* Expecting: call indirect 0 */
43631032f326SAdrian Hunter 
43641032f326SAdrian Hunter 	asm volatile("notrack bnd call *%eax");			/* Expecting: call indirect 0 */
43651032f326SAdrian Hunter 	asm volatile("notrack bnd call *(%eax)");		/* Expecting: call indirect 0 */
43661032f326SAdrian Hunter 	asm volatile("notrack bnd call *(0x12345678)");		/* Expecting: call indirect 0 */
43671032f326SAdrian Hunter 	asm volatile("notrack bnd call *0x12345678(%eax,%ecx,8)"); /* Expecting: call indirect 0 */
43681032f326SAdrian Hunter 
43691032f326SAdrian Hunter 	/* jmp with/without notrack prefix */
43701032f326SAdrian Hunter 
43711032f326SAdrian Hunter 	asm volatile("jmp *%eax");				/* Expecting: jmp indirect 0 */
43721032f326SAdrian Hunter 	asm volatile("jmp *(%eax)");				/* Expecting: jmp indirect 0 */
43731032f326SAdrian Hunter 	asm volatile("jmp *(0x12345678)");			/* Expecting: jmp indirect 0 */
43741032f326SAdrian Hunter 	asm volatile("jmp *0x12345678(%eax,%ecx,8)");		/* Expecting: jmp indirect 0 */
43751032f326SAdrian Hunter 
43761032f326SAdrian Hunter 	asm volatile("bnd jmp *%eax");				/* Expecting: jmp indirect 0 */
43771032f326SAdrian Hunter 	asm volatile("bnd jmp *(%eax)");			/* Expecting: jmp indirect 0 */
43781032f326SAdrian Hunter 	asm volatile("bnd jmp *(0x12345678)");			/* Expecting: jmp indirect 0 */
43791032f326SAdrian Hunter 	asm volatile("bnd jmp *0x12345678(%eax,%ecx,8)");	/* Expecting: jmp indirect 0 */
43801032f326SAdrian Hunter 
43811032f326SAdrian Hunter 	asm volatile("notrack jmp *%eax");			/* Expecting: jmp indirect 0 */
43821032f326SAdrian Hunter 	asm volatile("notrack jmp *(%eax)");			/* Expecting: jmp indirect 0 */
43831032f326SAdrian Hunter 	asm volatile("notrack jmp *(0x12345678)");		/* Expecting: jmp indirect 0 */
43841032f326SAdrian Hunter 	asm volatile("notrack jmp *0x12345678(%eax,%ecx,8)");	/* Expecting: jmp indirect 0 */
43851032f326SAdrian Hunter 
43861032f326SAdrian Hunter 	asm volatile("notrack bnd jmp *%eax");			/* Expecting: jmp indirect 0 */
43871032f326SAdrian Hunter 	asm volatile("notrack bnd jmp *(%eax)");		/* Expecting: jmp indirect 0 */
43881032f326SAdrian Hunter 	asm volatile("notrack bnd jmp *(0x12345678)");		/* Expecting: jmp indirect 0 */
43891032f326SAdrian Hunter 	asm volatile("notrack bnd jmp *0x12345678(%eax,%ecx,8)"); /* Expecting: jmp indirect 0 */
43901032f326SAdrian Hunter 
4391*cdb63ba9SAdrian Hunter 	/* AVX512-FP16 */
4392*cdb63ba9SAdrian Hunter 
4393*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %zmm3, %zmm2, %zmm1");
4394*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4395*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %xmm3, %xmm2, %xmm1");
4396*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4397*cdb63ba9SAdrian Hunter 	asm volatile("vaddph %ymm3, %ymm2, %ymm1");
4398*cdb63ba9SAdrian Hunter 	asm volatile("vaddph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4399*cdb63ba9SAdrian Hunter 	asm volatile("vaddsh %xmm3, %xmm2, %xmm1");
4400*cdb63ba9SAdrian Hunter 	asm volatile("vaddsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4401*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %zmm3, %zmm2, %k5");
4402*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %zmm2, %k5");
4403*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %xmm3, %xmm2, %k5");
4404*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4405*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, %ymm3, %ymm2, %k5");
4406*cdb63ba9SAdrian Hunter 	asm volatile("vcmpph $0x12, 0x12345678(%eax,%ecx,8), %ymm2, %k5");
4407*cdb63ba9SAdrian Hunter 	asm volatile("vcmpsh $0x12, %xmm3, %xmm2, %k5");
4408*cdb63ba9SAdrian Hunter 	asm volatile("vcmpsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %k5");
4409*cdb63ba9SAdrian Hunter 	asm volatile("vcomish %xmm2, %xmm1");
4410*cdb63ba9SAdrian Hunter 	asm volatile("vcomish 0x12345678(%eax,%ecx,8), %xmm1");
4411*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %zmm2, %ymm1");
4412*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph 0x12345678(%eax,%ecx,8), %ymm1");
4413*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %xmm2, %xmm1");
4414*cdb63ba9SAdrian Hunter 	asm volatile("vcvtdq2ph %ymm2, %xmm1");
4415*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %zmm2, %xmm1");
4416*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %xmm2, %xmm1");
4417*cdb63ba9SAdrian Hunter 	asm volatile("vcvtpd2ph %ymm2, %xmm1");
4418*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %ymm2, %zmm1");
4419*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %zmm1");
4420*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %xmm2, %xmm1");
4421*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %xmm1");
4422*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq %xmm2, %ymm1");
4423*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2dq 0x12345678(%eax,%ecx,8), %ymm1");
4424*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %zmm1");
4425*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %zmm1");
4426*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %xmm1");
4427*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %xmm1");
4428*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd %xmm2, %ymm1");
4429*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2pd 0x12345678(%eax,%ecx,8), %ymm1");
4430*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %ymm2, %zmm1");
4431*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %zmm1");
4432*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %xmm1");
4433*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4434*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %ymm1");
4435*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4436*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %xmm1");
4437*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %xmm1");
4438*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps %xmm2, %ymm1");
4439*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2ps 0x12345678(%eax,%ecx,8), %ymm1");
4440*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %ymm2, %zmm1");
4441*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %zmm1");
4442*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %xmm2, %xmm1");
4443*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %xmm1");
4444*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx %xmm2, %ymm1");
4445*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2psx 0x12345678(%eax,%ecx,8), %ymm1");
4446*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %zmm1");
4447*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %zmm1");
4448*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %xmm1");
4449*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %xmm1");
4450*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq %xmm2, %ymm1");
4451*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2qq 0x12345678(%eax,%ecx,8), %ymm1");
4452*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %ymm2, %zmm1");
4453*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %zmm1");
4454*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %xmm2, %xmm1");
4455*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %xmm1");
4456*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq %xmm2, %ymm1");
4457*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2udq 0x12345678(%eax,%ecx,8), %ymm1");
4458*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %zmm1");
4459*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
4460*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %xmm1");
4461*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
4462*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq %xmm2, %ymm1");
4463*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
4464*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %zmm2, %zmm1");
4465*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %zmm1");
4466*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %xmm2, %xmm1");
4467*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %xmm1");
4468*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw %ymm2, %ymm1");
4469*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2uw 0x12345678(%eax,%ecx,8), %ymm1");
4470*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %zmm2, %zmm1");
4471*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %zmm1");
4472*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %xmm2, %xmm1");
4473*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %xmm1");
4474*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w %ymm2, %ymm1");
4475*cdb63ba9SAdrian Hunter 	asm volatile("vcvtph2w 0x12345678(%eax,%ecx,8), %ymm1");
4476*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %zmm1, 0x12345678(%eax,%ecx,8)");
4477*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %zmm2, %ymm1");
4478*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm1, 0x12345678(%eax,%ecx,8)");
4479*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm1, 0x12345678(%eax,%ecx,8)");
4480*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4481*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4482*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, %xmm1");
4483*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %ymm2, 0x12345678(%eax,%ecx,8)");
4484*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, %xmm1");
4485*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2ph $0x12, %xmm2, 0x12345678(%eax,%ecx,8)");
4486*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %zmm2, %ymm1");
4487*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx 0x12345678(%eax,%ecx,8), %ymm1");
4488*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %xmm2, %xmm1");
4489*cdb63ba9SAdrian Hunter 	asm volatile("vcvtps2phx %ymm2, %xmm1");
4490*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %zmm2, %xmm1");
4491*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %xmm2, %xmm1");
4492*cdb63ba9SAdrian Hunter 	asm volatile("vcvtqq2ph %ymm2, %xmm1");
4493*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsd2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4494*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2sd 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4495*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2si 0x12345678(%eax,%ecx,8), %eax");
4496*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2ss 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4497*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi %xmm1, %eax");
4498*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsh2usi 0x12345678(%eax,%ecx,8), %eax");
4499*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh %eax, %xmm2, %xmm1");
4500*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4501*cdb63ba9SAdrian Hunter 	asm volatile("vcvtsi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4502*cdb63ba9SAdrian Hunter 	asm volatile("vcvtss2sh %xmm3, %xmm2, %xmm1");
4503*cdb63ba9SAdrian Hunter 	asm volatile("vcvtss2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4504*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %ymm2, %zmm1");
4505*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %zmm1");
4506*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %xmm2, %xmm1");
4507*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %xmm1");
4508*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq %xmm2, %ymm1");
4509*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2dq 0x12345678(%eax,%ecx,8), %ymm1");
4510*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %zmm1");
4511*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %zmm1");
4512*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %xmm1");
4513*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %xmm1");
4514*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq %xmm2, %ymm1");
4515*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2qq 0x12345678(%eax,%ecx,8), %ymm1");
4516*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %ymm2, %zmm1");
4517*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %zmm1");
4518*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %xmm2, %xmm1");
4519*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %xmm1");
4520*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq %xmm2, %ymm1");
4521*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2udq 0x12345678(%eax,%ecx,8), %ymm1");
4522*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %zmm1");
4523*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %zmm1");
4524*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %xmm1");
4525*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %xmm1");
4526*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq %xmm2, %ymm1");
4527*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uqq 0x12345678(%eax,%ecx,8), %ymm1");
4528*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %zmm2, %zmm1");
4529*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %zmm1");
4530*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %xmm2, %xmm1");
4531*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %xmm1");
4532*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw %ymm2, %ymm1");
4533*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2uw 0x12345678(%eax,%ecx,8), %ymm1");
4534*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %zmm2, %zmm1");
4535*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %zmm1");
4536*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %xmm2, %xmm1");
4537*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %xmm1");
4538*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w %ymm2, %ymm1");
4539*cdb63ba9SAdrian Hunter 	asm volatile("vcvttph2w 0x12345678(%eax,%ecx,8), %ymm1");
4540*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si %xmm1, %eax");
4541*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2si 0x12345678(%eax,%ecx,8), %eax");
4542*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi %xmm1, %eax");
4543*cdb63ba9SAdrian Hunter 	asm volatile("vcvttsh2usi 0x12345678(%eax,%ecx,8), %eax");
4544*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %zmm2, %ymm1");
4545*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph 0x12345678(%eax,%ecx,8), %ymm1");
4546*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %xmm2, %xmm1");
4547*cdb63ba9SAdrian Hunter 	asm volatile("vcvtudq2ph %ymm2, %xmm1");
4548*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %zmm2, %xmm1");
4549*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %xmm2, %xmm1");
4550*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuqq2ph %ymm2, %xmm1");
4551*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh %eax, %xmm2, %xmm1");
4552*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4553*cdb63ba9SAdrian Hunter 	asm volatile("vcvtusi2sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4554*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %zmm2, %zmm1");
4555*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %zmm1");
4556*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %xmm2, %xmm1");
4557*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %xmm1");
4558*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph %ymm2, %ymm1");
4559*cdb63ba9SAdrian Hunter 	asm volatile("vcvtuw2ph 0x12345678(%eax,%ecx,8), %ymm1");
4560*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %zmm2, %zmm1");
4561*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %zmm1");
4562*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %xmm2, %xmm1");
4563*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %xmm1");
4564*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph %ymm2, %ymm1");
4565*cdb63ba9SAdrian Hunter 	asm volatile("vcvtw2ph 0x12345678(%eax,%ecx,8), %ymm1");
4566*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %zmm3, %zmm2, %zmm1");
4567*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4568*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %xmm3, %xmm2, %xmm1");
4569*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4570*cdb63ba9SAdrian Hunter 	asm volatile("vdivph %ymm3, %ymm2, %ymm1");
4571*cdb63ba9SAdrian Hunter 	asm volatile("vdivph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4572*cdb63ba9SAdrian Hunter 	asm volatile("vdivsh %xmm3, %xmm2, %xmm1");
4573*cdb63ba9SAdrian Hunter 	asm volatile("vdivsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4574*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %zmm3, %zmm2, %zmm1");
4575*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4576*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %xmm3, %xmm2, %xmm1");
4577*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4578*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph %ymm3, %ymm2, %ymm1");
4579*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4580*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcsh %xmm3, %xmm2, %xmm1");
4581*cdb63ba9SAdrian Hunter 	asm volatile("vfcmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4582*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %zmm3, %zmm2, %zmm1");
4583*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4584*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %xmm3, %xmm2, %xmm1");
4585*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4586*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph %ymm3, %ymm2, %ymm1");
4587*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4588*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcsh %xmm3, %xmm2, %xmm1");
4589*cdb63ba9SAdrian Hunter 	asm volatile("vfcmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4590*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %zmm3, %zmm2, %zmm1");
4591*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4592*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %xmm3, %xmm2, %xmm1");
4593*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4594*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph %ymm3, %ymm2, %ymm1");
4595*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4596*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132sh %xmm3, %xmm2, %xmm1");
4597*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4598*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %zmm3, %zmm2, %zmm1");
4599*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4600*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %xmm3, %xmm2, %xmm1");
4601*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4602*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph %ymm3, %ymm2, %ymm1");
4603*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4604*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213sh %xmm3, %xmm2, %xmm1");
4605*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4606*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %zmm3, %zmm2, %zmm1");
4607*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4608*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %xmm3, %xmm2, %xmm1");
4609*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4610*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph %ymm3, %ymm2, %ymm1");
4611*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4612*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231sh %xmm3, %xmm2, %xmm1");
4613*cdb63ba9SAdrian Hunter 	asm volatile("vfmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4614*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %zmm3, %zmm2, %zmm1");
4615*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4616*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %xmm3, %xmm2, %xmm1");
4617*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4618*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph %ymm3, %ymm2, %ymm1");
4619*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4620*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcsh %xmm3, %xmm2, %xmm1");
4621*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4622*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %zmm3, %zmm2, %zmm1");
4623*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4624*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %xmm3, %xmm2, %xmm1");
4625*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4626*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph %ymm3, %ymm2, %ymm1");
4627*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4628*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %zmm3, %zmm2, %zmm1");
4629*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4630*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %xmm3, %xmm2, %xmm1");
4631*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4632*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph %ymm3, %ymm2, %ymm1");
4633*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4634*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %zmm3, %zmm2, %zmm1");
4635*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4636*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %xmm3, %xmm2, %xmm1");
4637*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4638*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph %ymm3, %ymm2, %ymm1");
4639*cdb63ba9SAdrian Hunter 	asm volatile("vfmaddsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4640*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %zmm3, %zmm2, %zmm1");
4641*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4642*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %xmm3, %xmm2, %xmm1");
4643*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4644*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph %ymm3, %ymm2, %ymm1");
4645*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4646*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132sh %xmm3, %xmm2, %xmm1");
4647*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4648*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %zmm3, %zmm2, %zmm1");
4649*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4650*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %xmm3, %xmm2, %xmm1");
4651*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4652*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph %ymm3, %ymm2, %ymm1");
4653*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4654*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213sh %xmm3, %xmm2, %xmm1");
4655*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4656*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %zmm3, %zmm2, %zmm1");
4657*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4658*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %xmm3, %xmm2, %xmm1");
4659*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4660*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph %ymm3, %ymm2, %ymm1");
4661*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4662*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231sh %xmm3, %xmm2, %xmm1");
4663*cdb63ba9SAdrian Hunter 	asm volatile("vfmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4664*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %zmm3, %zmm2, %zmm1");
4665*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4666*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %xmm3, %xmm2, %xmm1");
4667*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4668*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph %ymm3, %ymm2, %ymm1");
4669*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4670*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %zmm3, %zmm2, %zmm1");
4671*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4672*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %xmm3, %xmm2, %xmm1");
4673*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4674*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph %ymm3, %ymm2, %ymm1");
4675*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4676*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %zmm3, %zmm2, %zmm1");
4677*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4678*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %xmm3, %xmm2, %xmm1");
4679*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4680*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph %ymm3, %ymm2, %ymm1");
4681*cdb63ba9SAdrian Hunter 	asm volatile("vfmsubadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4682*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %zmm3, %zmm2, %zmm1");
4683*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4684*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %xmm3, %xmm2, %xmm1");
4685*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4686*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph %ymm3, %ymm2, %ymm1");
4687*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4688*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcsh %xmm3, %xmm2, %xmm1");
4689*cdb63ba9SAdrian Hunter 	asm volatile("vfmulcsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4690*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %zmm3, %zmm2, %zmm1");
4691*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4692*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %xmm3, %xmm2, %xmm1");
4693*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4694*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph %ymm3, %ymm2, %ymm1");
4695*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4696*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132sh %xmm3, %xmm2, %xmm1");
4697*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4698*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %zmm3, %zmm2, %zmm1");
4699*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4700*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %xmm3, %xmm2, %xmm1");
4701*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4702*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph %ymm3, %ymm2, %ymm1");
4703*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4704*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213sh %xmm3, %xmm2, %xmm1");
4705*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4706*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %zmm3, %zmm2, %zmm1");
4707*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4708*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %xmm3, %xmm2, %xmm1");
4709*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4710*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph %ymm3, %ymm2, %ymm1");
4711*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4712*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231sh %xmm3, %xmm2, %xmm1");
4713*cdb63ba9SAdrian Hunter 	asm volatile("vfnmadd231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4714*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %zmm3, %zmm2, %zmm1");
4715*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4716*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %xmm3, %xmm2, %xmm1");
4717*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4718*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph %ymm3, %ymm2, %ymm1");
4719*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4720*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132sh %xmm3, %xmm2, %xmm1");
4721*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub132sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4722*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %zmm3, %zmm2, %zmm1");
4723*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4724*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %xmm3, %xmm2, %xmm1");
4725*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4726*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph %ymm3, %ymm2, %ymm1");
4727*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4728*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213sh %xmm3, %xmm2, %xmm1");
4729*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub213sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4730*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %zmm3, %zmm2, %zmm1");
4731*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4732*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %xmm3, %xmm2, %xmm1");
4733*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4734*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph %ymm3, %ymm2, %ymm1");
4735*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231ph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4736*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231sh %xmm3, %xmm2, %xmm1");
4737*cdb63ba9SAdrian Hunter 	asm volatile("vfnmsub231sh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4738*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %zmm1, %k5");
4739*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %xmm1, %k5");
4740*cdb63ba9SAdrian Hunter 	asm volatile("vfpclassph $0x12, %ymm1, %k5");
4741*cdb63ba9SAdrian Hunter 	asm volatile("vfpclasssh $0x12, %xmm1, %k5");
4742*cdb63ba9SAdrian Hunter 	asm volatile("vfpclasssh $0x12, 0x12345678(%eax,%ecx,8), %k5");
4743*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %zmm2, %zmm1");
4744*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %zmm1");
4745*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %xmm2, %xmm1");
4746*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %xmm1");
4747*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph %ymm2, %ymm1");
4748*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpph 0x12345678(%eax,%ecx,8), %ymm1");
4749*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpsh %xmm3, %xmm2, %xmm1");
4750*cdb63ba9SAdrian Hunter 	asm volatile("vgetexpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4751*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %zmm2, %zmm1");
4752*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4753*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %xmm2, %xmm1");
4754*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4755*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, %ymm2, %ymm1");
4756*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4757*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantsh $0x12, %xmm3, %xmm2, %xmm1");
4758*cdb63ba9SAdrian Hunter 	asm volatile("vgetmantsh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4759*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %zmm3, %zmm2, %zmm1");
4760*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4761*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %xmm3, %xmm2, %xmm1");
4762*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4763*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph %ymm3, %ymm2, %ymm1");
4764*cdb63ba9SAdrian Hunter 	asm volatile("vmaxph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4765*cdb63ba9SAdrian Hunter 	asm volatile("vmaxsh %xmm3, %xmm2, %xmm1");
4766*cdb63ba9SAdrian Hunter 	asm volatile("vmaxsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4767*cdb63ba9SAdrian Hunter 	asm volatile("vminph %zmm3, %zmm2, %zmm1");
4768*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4769*cdb63ba9SAdrian Hunter 	asm volatile("vminph %xmm3, %xmm2, %xmm1");
4770*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4771*cdb63ba9SAdrian Hunter 	asm volatile("vminph %ymm3, %ymm2, %ymm1");
4772*cdb63ba9SAdrian Hunter 	asm volatile("vminph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4773*cdb63ba9SAdrian Hunter 	asm volatile("vminsh %xmm3, %xmm2, %xmm1");
4774*cdb63ba9SAdrian Hunter 	asm volatile("vminsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4775*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh %xmm1, 0x12345678(%eax,%ecx,8)");
4776*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh 0x12345678(%eax,%ecx,8), %xmm1");
4777*cdb63ba9SAdrian Hunter 	asm volatile("vmovsh %xmm3, %xmm2, %xmm1");
4778*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %xmm1, %eax");
4779*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %xmm1, 0x12345678(%eax,%ecx,8)");
4780*cdb63ba9SAdrian Hunter 	asm volatile("vmovw %eax, %xmm1");
4781*cdb63ba9SAdrian Hunter 	asm volatile("vmovw 0x12345678(%eax,%ecx,8), %xmm1");
4782*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %zmm3, %zmm2, %zmm1");
4783*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4784*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %xmm3, %xmm2, %xmm1");
4785*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4786*cdb63ba9SAdrian Hunter 	asm volatile("vmulph %ymm3, %ymm2, %ymm1");
4787*cdb63ba9SAdrian Hunter 	asm volatile("vmulph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4788*cdb63ba9SAdrian Hunter 	asm volatile("vmulsh %xmm3, %xmm2, %xmm1");
4789*cdb63ba9SAdrian Hunter 	asm volatile("vmulsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4790*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %zmm2, %zmm1");
4791*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %zmm1");
4792*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %xmm2, %xmm1");
4793*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %xmm1");
4794*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph %ymm2, %ymm1");
4795*cdb63ba9SAdrian Hunter 	asm volatile("vrcpph 0x12345678(%eax,%ecx,8), %ymm1");
4796*cdb63ba9SAdrian Hunter 	asm volatile("vrcpsh %xmm3, %xmm2, %xmm1");
4797*cdb63ba9SAdrian Hunter 	asm volatile("vrcpsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4798*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %zmm2, %zmm1");
4799*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4800*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %xmm2, %xmm1");
4801*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4802*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, %ymm2, %ymm1");
4803*cdb63ba9SAdrian Hunter 	asm volatile("vreduceph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4804*cdb63ba9SAdrian Hunter 	asm volatile("vreducesh $0x12, %xmm3, %xmm2, %xmm1");
4805*cdb63ba9SAdrian Hunter 	asm volatile("vreducesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4806*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %zmm2, %zmm1");
4807*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %zmm1");
4808*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %xmm2, %xmm1");
4809*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %xmm1");
4810*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, %ymm2, %ymm1");
4811*cdb63ba9SAdrian Hunter 	asm volatile("vrndscaleph $0x12, 0x12345678(%eax,%ecx,8), %ymm1");
4812*cdb63ba9SAdrian Hunter 	asm volatile("vrndscalesh $0x12, %xmm3, %xmm2, %xmm1");
4813*cdb63ba9SAdrian Hunter 	asm volatile("vrndscalesh $0x12, 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4814*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %zmm2, %zmm1");
4815*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
4816*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %xmm2, %xmm1");
4817*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
4818*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph %ymm2, %ymm1");
4819*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
4820*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtsh %xmm3, %xmm2, %xmm1");
4821*cdb63ba9SAdrian Hunter 	asm volatile("vrsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4822*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %zmm3, %zmm2, %zmm1");
4823*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4824*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %xmm3, %xmm2, %xmm1");
4825*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4826*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph %ymm3, %ymm2, %ymm1");
4827*cdb63ba9SAdrian Hunter 	asm volatile("vscalefph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4828*cdb63ba9SAdrian Hunter 	asm volatile("vscalefsh %xmm3, %xmm2, %xmm1");
4829*cdb63ba9SAdrian Hunter 	asm volatile("vscalefsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4830*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %zmm2, %zmm1");
4831*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %zmm1");
4832*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %xmm2, %xmm1");
4833*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %xmm1");
4834*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph %ymm2, %ymm1");
4835*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtph 0x12345678(%eax,%ecx,8), %ymm1");
4836*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtsh %xmm3, %xmm2, %xmm1");
4837*cdb63ba9SAdrian Hunter 	asm volatile("vsqrtsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4838*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %zmm3, %zmm2, %zmm1");
4839*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %zmm2, %zmm1");
4840*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %xmm3, %xmm2, %xmm1");
4841*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4842*cdb63ba9SAdrian Hunter 	asm volatile("vsubph %ymm3, %ymm2, %ymm1");
4843*cdb63ba9SAdrian Hunter 	asm volatile("vsubph 0x12345678(%eax,%ecx,8), %ymm2, %ymm1");
4844*cdb63ba9SAdrian Hunter 	asm volatile("vsubsh %xmm3, %xmm2, %xmm1");
4845*cdb63ba9SAdrian Hunter 	asm volatile("vsubsh 0x12345678(%eax,%ecx,8), %xmm2, %xmm1");
4846*cdb63ba9SAdrian Hunter 	asm volatile("vucomish %xmm2, %xmm1");
4847*cdb63ba9SAdrian Hunter 	asm volatile("vucomish 0x12345678(%eax,%ecx,8), %xmm1");
4848*cdb63ba9SAdrian Hunter 
4849d8b167f9SMatt Fleming #endif /* #ifndef __x86_64__ */
4850d8b167f9SMatt Fleming 
4851a6ea1142SAdrian Hunter 	/* Prediction history reset */
4852a6ea1142SAdrian Hunter 
4853a6ea1142SAdrian Hunter 	asm volatile("hreset $0");
4854a6ea1142SAdrian Hunter 
4855a6ea1142SAdrian Hunter 	/* Serialize instruction execution */
4856a6ea1142SAdrian Hunter 
4857a6ea1142SAdrian Hunter 	asm volatile("serialize");
4858a6ea1142SAdrian Hunter 
4859a6ea1142SAdrian Hunter 	/* TSX suspend load address tracking */
4860a6ea1142SAdrian Hunter 
4861a6ea1142SAdrian Hunter 	asm volatile("xresldtrk");
4862a6ea1142SAdrian Hunter 	asm volatile("xsusldtrk");
4863a6ea1142SAdrian Hunter 
48641e5f0154SAdrian Hunter 	/* SGX */
48651e5f0154SAdrian Hunter 
48661e5f0154SAdrian Hunter 	asm volatile("encls");
48671e5f0154SAdrian Hunter 	asm volatile("enclu");
48681e5f0154SAdrian Hunter 	asm volatile("enclv");
48691e5f0154SAdrian Hunter 
48701e5f0154SAdrian Hunter 	/* pconfig */
48711e5f0154SAdrian Hunter 
48721e5f0154SAdrian Hunter 	asm volatile("pconfig");
48731e5f0154SAdrian Hunter 
48741e5f0154SAdrian Hunter 	/* wbnoinvd */
48751e5f0154SAdrian Hunter 
48761e5f0154SAdrian Hunter 	asm volatile("wbnoinvd");
48771e5f0154SAdrian Hunter 
4878d8b167f9SMatt Fleming 	/* Following line is a marker for the awk script - do not change */
4879d8b167f9SMatt Fleming 	asm volatile("rdtsc"); /* Stop here */
4880d8b167f9SMatt Fleming 
4881d8b167f9SMatt Fleming 	return 0;
4882d8b167f9SMatt Fleming }
4883