1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512dq -mattr=+avx512vl --show-encoding %s | FileCheck %s
3 // CHECK: vpmullq %xmm22, %xmm17, %xmm26
4 // CHECK: encoding: [0x62,0x22,0xf5,0x00,0x40,0xd6]
5 vpmullq %xmm22, %xmm17, %xmm26
7 // CHECK: vpmullq %xmm22, %xmm17, %xmm26 {%k6}
8 // CHECK: encoding: [0x62,0x22,0xf5,0x06,0x40,0xd6]
9 vpmullq %xmm22, %xmm17, %xmm26 {%k6}
11 // CHECK: vpmullq %xmm22, %xmm17, %xmm26 {%k6} {z}
12 // CHECK: encoding: [0x62,0x22,0xf5,0x86,0x40,0xd6]
13 vpmullq %xmm22, %xmm17, %xmm26 {%k6} {z}
15 // CHECK: vpmullq (%rcx), %xmm17, %xmm26
16 // CHECK: encoding: [0x62,0x62,0xf5,0x00,0x40,0x11]
17 vpmullq (%rcx), %xmm17, %xmm26
19 // CHECK: vpmullq 291(%rax,%r14,8), %xmm17, %xmm26
20 // CHECK: encoding: [0x62,0x22,0xf5,0x00,0x40,0x94,0xf0,0x23,0x01,0x00,0x00]
21 vpmullq 291(%rax,%r14,8), %xmm17, %xmm26
23 // CHECK: vpmullq (%rcx){1to2}, %xmm17, %xmm26
24 // CHECK: encoding: [0x62,0x62,0xf5,0x10,0x40,0x11]
25 vpmullq (%rcx){1to2}, %xmm17, %xmm26
27 // CHECK: vpmullq 2032(%rdx), %xmm17, %xmm26
28 // CHECK: encoding: [0x62,0x62,0xf5,0x00,0x40,0x52,0x7f]
29 vpmullq 2032(%rdx), %xmm17, %xmm26
31 // CHECK: vpmullq 2048(%rdx), %xmm17, %xmm26
32 // CHECK: encoding: [0x62,0x62,0xf5,0x00,0x40,0x92,0x00,0x08,0x00,0x00]
33 vpmullq 2048(%rdx), %xmm17, %xmm26
35 // CHECK: vpmullq -2048(%rdx), %xmm17, %xmm26
36 // CHECK: encoding: [0x62,0x62,0xf5,0x00,0x40,0x52,0x80]
37 vpmullq -2048(%rdx), %xmm17, %xmm26
39 // CHECK: vpmullq -2064(%rdx), %xmm17, %xmm26
40 // CHECK: encoding: [0x62,0x62,0xf5,0x00,0x40,0x92,0xf0,0xf7,0xff,0xff]
41 vpmullq -2064(%rdx), %xmm17, %xmm26
43 // CHECK: vpmullq 1016(%rdx){1to2}, %xmm17, %xmm26
44 // CHECK: encoding: [0x62,0x62,0xf5,0x10,0x40,0x52,0x7f]
45 vpmullq 1016(%rdx){1to2}, %xmm17, %xmm26
47 // CHECK: vpmullq 1024(%rdx){1to2}, %xmm17, %xmm26
48 // CHECK: encoding: [0x62,0x62,0xf5,0x10,0x40,0x92,0x00,0x04,0x00,0x00]
49 vpmullq 1024(%rdx){1to2}, %xmm17, %xmm26
51 // CHECK: vpmullq -1024(%rdx){1to2}, %xmm17, %xmm26
52 // CHECK: encoding: [0x62,0x62,0xf5,0x10,0x40,0x52,0x80]
53 vpmullq -1024(%rdx){1to2}, %xmm17, %xmm26
55 // CHECK: vpmullq -1032(%rdx){1to2}, %xmm17, %xmm26
56 // CHECK: encoding: [0x62,0x62,0xf5,0x10,0x40,0x92,0xf8,0xfb,0xff,0xff]
57 vpmullq -1032(%rdx){1to2}, %xmm17, %xmm26
59 // CHECK: vpmullq %ymm25, %ymm25, %ymm25
60 // CHECK: encoding: [0x62,0x02,0xb5,0x20,0x40,0xc9]
61 vpmullq %ymm25, %ymm25, %ymm25
63 // CHECK: vpmullq %ymm25, %ymm25, %ymm25 {%k3}
64 // CHECK: encoding: [0x62,0x02,0xb5,0x23,0x40,0xc9]
65 vpmullq %ymm25, %ymm25, %ymm25 {%k3}
67 // CHECK: vpmullq %ymm25, %ymm25, %ymm25 {%k3} {z}
68 // CHECK: encoding: [0x62,0x02,0xb5,0xa3,0x40,0xc9]
69 vpmullq %ymm25, %ymm25, %ymm25 {%k3} {z}
71 // CHECK: vpmullq (%rcx), %ymm25, %ymm25
72 // CHECK: encoding: [0x62,0x62,0xb5,0x20,0x40,0x09]
73 vpmullq (%rcx), %ymm25, %ymm25
75 // CHECK: vpmullq 291(%rax,%r14,8), %ymm25, %ymm25
76 // CHECK: encoding: [0x62,0x22,0xb5,0x20,0x40,0x8c,0xf0,0x23,0x01,0x00,0x00]
77 vpmullq 291(%rax,%r14,8), %ymm25, %ymm25
79 // CHECK: vpmullq (%rcx){1to4}, %ymm25, %ymm25
80 // CHECK: encoding: [0x62,0x62,0xb5,0x30,0x40,0x09]
81 vpmullq (%rcx){1to4}, %ymm25, %ymm25
83 // CHECK: vpmullq 4064(%rdx), %ymm25, %ymm25
84 // CHECK: encoding: [0x62,0x62,0xb5,0x20,0x40,0x4a,0x7f]
85 vpmullq 4064(%rdx), %ymm25, %ymm25
87 // CHECK: vpmullq 4096(%rdx), %ymm25, %ymm25
88 // CHECK: encoding: [0x62,0x62,0xb5,0x20,0x40,0x8a,0x00,0x10,0x00,0x00]
89 vpmullq 4096(%rdx), %ymm25, %ymm25
91 // CHECK: vpmullq -4096(%rdx), %ymm25, %ymm25
92 // CHECK: encoding: [0x62,0x62,0xb5,0x20,0x40,0x4a,0x80]
93 vpmullq -4096(%rdx), %ymm25, %ymm25
95 // CHECK: vpmullq -4128(%rdx), %ymm25, %ymm25
96 // CHECK: encoding: [0x62,0x62,0xb5,0x20,0x40,0x8a,0xe0,0xef,0xff,0xff]
97 vpmullq -4128(%rdx), %ymm25, %ymm25
99 // CHECK: vpmullq 1016(%rdx){1to4}, %ymm25, %ymm25
100 // CHECK: encoding: [0x62,0x62,0xb5,0x30,0x40,0x4a,0x7f]
101 vpmullq 1016(%rdx){1to4}, %ymm25, %ymm25
103 // CHECK: vpmullq 1024(%rdx){1to4}, %ymm25, %ymm25
104 // CHECK: encoding: [0x62,0x62,0xb5,0x30,0x40,0x8a,0x00,0x04,0x00,0x00]
105 vpmullq 1024(%rdx){1to4}, %ymm25, %ymm25
107 // CHECK: vpmullq -1024(%rdx){1to4}, %ymm25, %ymm25
108 // CHECK: encoding: [0x62,0x62,0xb5,0x30,0x40,0x4a,0x80]
109 vpmullq -1024(%rdx){1to4}, %ymm25, %ymm25
111 // CHECK: vpmullq -1032(%rdx){1to4}, %ymm25, %ymm25
112 // CHECK: encoding: [0x62,0x62,0xb5,0x30,0x40,0x8a,0xf8,0xfb,0xff,0xff]
113 vpmullq -1032(%rdx){1to4}, %ymm25, %ymm25