1 // RUN: llvm-mc -triple x86_64-unknown-unknown -mcpu=knl -mattr=+avx512vl -x86-asm-syntax=intel -output-asm-variant=1 --show-encoding %s | FileCheck %s
3 // CHECK: vcmppd k3, xmm27, xmm23, 171
4 // CHECK: encoding: [0x62,0xb1,0xa5,0x00,0xc2,0xdf,0xab]
5 vcmppd k3,xmm27,xmm23,0xab
7 // CHECK: vcmppd k3 {k5}, xmm27, xmm23, 171
8 // CHECK: encoding: [0x62,0xb1,0xa5,0x05,0xc2,0xdf,0xab]
9 vcmppd k3{k5},xmm27,xmm23,0xab
11 // CHECK: vcmppd k3, xmm27, xmm23, 123
12 // CHECK: encoding: [0x62,0xb1,0xa5,0x00,0xc2,0xdf,0x7b]
13 vcmppd k3,xmm27,xmm23,0x7b
15 // CHECK: vcmppd k3, xmm27, xmmword ptr [rcx], 123
16 // CHECK: encoding: [0x62,0xf1,0xa5,0x00,0xc2,0x19,0x7b]
17 vcmppd k3,xmm27,XMMWORD PTR [rcx],0x7b
19 // CHECK: vcmppd k3, xmm27, xmmword ptr [rax + 8*r14 + 291], 123
20 // CHECK: encoding: [0x62,0xb1,0xa5,0x00,0xc2,0x9c,0xf0,0x23,0x01,0x00,0x00,0x7b]
21 vcmppd k3,xmm27,XMMWORD PTR [rax+r14*8+0x123],0x7b
23 // CHECK: vcmppd k3, xmm27, qword ptr [rcx]{1to2}, 123
24 // CHECK: encoding: [0x62,0xf1,0xa5,0x10,0xc2,0x19,0x7b]
25 vcmppd k3,xmm27,QWORD PTR [rcx]{1to2},0x7b
27 // CHECK: vcmppd k3, xmm27, xmmword ptr [rdx + 2032], 123
28 // CHECK: encoding: [0x62,0xf1,0xa5,0x00,0xc2,0x5a,0x7f,0x7b]
29 vcmppd k3,xmm27,XMMWORD PTR [rdx+0x7f0],0x7b
31 // CHECK: vcmppd k3, xmm27, xmmword ptr [rdx + 2048], 123
32 // CHECK: encoding: [0x62,0xf1,0xa5,0x00,0xc2,0x9a,0x00,0x08,0x00,0x00,0x7b]
33 vcmppd k3,xmm27,XMMWORD PTR [rdx+0x800],0x7b
35 // CHECK: vcmppd k3, xmm27, xmmword ptr [rdx - 2048], 123
36 // CHECK: encoding: [0x62,0xf1,0xa5,0x00,0xc2,0x5a,0x80,0x7b]
37 vcmppd k3,xmm27,XMMWORD PTR [rdx-0x800],0x7b
39 // CHECK: vcmppd k3, xmm27, xmmword ptr [rdx - 2064], 123
40 // CHECK: encoding: [0x62,0xf1,0xa5,0x00,0xc2,0x9a,0xf0,0xf7,0xff,0xff,0x7b]
41 vcmppd k3,xmm27,XMMWORD PTR [rdx-0x810],0x7b
43 // CHECK: vcmppd k3, xmm27, qword ptr [rdx + 1016]{1to2}, 123
44 // CHECK: encoding: [0x62,0xf1,0xa5,0x10,0xc2,0x5a,0x7f,0x7b]
45 vcmppd k3,xmm27,QWORD PTR [rdx+0x3f8]{1to2},0x7b
47 // CHECK: vcmppd k3, xmm27, qword ptr [rdx + 1024]{1to2}, 123
48 // CHECK: encoding: [0x62,0xf1,0xa5,0x10,0xc2,0x9a,0x00,0x04,0x00,0x00,0x7b]
49 vcmppd k3,xmm27,QWORD PTR [rdx+0x400]{1to2},0x7b
51 // CHECK: vcmppd k3, xmm27, qword ptr [rdx - 1024]{1to2}, 123
52 // CHECK: encoding: [0x62,0xf1,0xa5,0x10,0xc2,0x5a,0x80,0x7b]
53 vcmppd k3,xmm27,QWORD PTR [rdx-0x400]{1to2},0x7b
55 // CHECK: vcmppd k3, xmm27, qword ptr [rdx - 1032]{1to2}, 123
56 // CHECK: encoding: [0x62,0xf1,0xa5,0x10,0xc2,0x9a,0xf8,0xfb,0xff,0xff,0x7b]
57 vcmppd k3,xmm27,QWORD PTR [rdx-0x408]{1to2},0x7b
59 // CHECK: vcmppd k4, ymm17, ymm27, 171
60 // CHECK: encoding: [0x62,0x91,0xf5,0x20,0xc2,0xe3,0xab]
61 vcmppd k4,ymm17,ymm27,0xab
63 // CHECK: vcmppd k4 {k7}, ymm17, ymm27, 171
64 // CHECK: encoding: [0x62,0x91,0xf5,0x27,0xc2,0xe3,0xab]
65 vcmppd k4{k7},ymm17,ymm27,0xab
67 // CHECK: vcmppd k4, ymm17, ymm27, 123
68 // CHECK: encoding: [0x62,0x91,0xf5,0x20,0xc2,0xe3,0x7b]
69 vcmppd k4,ymm17,ymm27,0x7b
71 // CHECK: vcmppd k4, ymm17, ymmword ptr [rcx], 123
72 // CHECK: encoding: [0x62,0xf1,0xf5,0x20,0xc2,0x21,0x7b]
73 vcmppd k4,ymm17,YMMWORD PTR [rcx],0x7b
75 // CHECK: vcmppd k4, ymm17, ymmword ptr [rax + 8*r14 + 291], 123
76 // CHECK: encoding: [0x62,0xb1,0xf5,0x20,0xc2,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
77 vcmppd k4,ymm17,YMMWORD PTR [rax+r14*8+0x123],0x7b
79 // CHECK: vcmppd k4, ymm17, qword ptr [rcx]{1to4}, 123
80 // CHECK: encoding: [0x62,0xf1,0xf5,0x30,0xc2,0x21,0x7b]
81 vcmppd k4,ymm17,QWORD PTR [rcx]{1to4},0x7b
83 // CHECK: vcmppd k4, ymm17, ymmword ptr [rdx + 4064], 123
84 // CHECK: encoding: [0x62,0xf1,0xf5,0x20,0xc2,0x62,0x7f,0x7b]
85 vcmppd k4,ymm17,YMMWORD PTR [rdx+0xfe0],0x7b
87 // CHECK: vcmppd k4, ymm17, ymmword ptr [rdx + 4096], 123
88 // CHECK: encoding: [0x62,0xf1,0xf5,0x20,0xc2,0xa2,0x00,0x10,0x00,0x00,0x7b]
89 vcmppd k4,ymm17,YMMWORD PTR [rdx+0x1000],0x7b
91 // CHECK: vcmppd k4, ymm17, ymmword ptr [rdx - 4096], 123
92 // CHECK: encoding: [0x62,0xf1,0xf5,0x20,0xc2,0x62,0x80,0x7b]
93 vcmppd k4,ymm17,YMMWORD PTR [rdx-0x1000],0x7b
95 // CHECK: vcmppd k4, ymm17, ymmword ptr [rdx - 4128], 123
96 // CHECK: encoding: [0x62,0xf1,0xf5,0x20,0xc2,0xa2,0xe0,0xef,0xff,0xff,0x7b]
97 vcmppd k4,ymm17,YMMWORD PTR [rdx-0x1020],0x7b
99 // CHECK: vcmppd k4, ymm17, qword ptr [rdx + 1016]{1to4}, 123
100 // CHECK: encoding: [0x62,0xf1,0xf5,0x30,0xc2,0x62,0x7f,0x7b]
101 vcmppd k4,ymm17,QWORD PTR [rdx+0x3f8]{1to4},0x7b
103 // CHECK: vcmppd k4, ymm17, qword ptr [rdx + 1024]{1to4}, 123
104 // CHECK: encoding: [0x62,0xf1,0xf5,0x30,0xc2,0xa2,0x00,0x04,0x00,0x00,0x7b]
105 vcmppd k4,ymm17,QWORD PTR [rdx+0x400]{1to4},0x7b
107 // CHECK: vcmppd k4, ymm17, qword ptr [rdx - 1024]{1to4}, 123
108 // CHECK: encoding: [0x62,0xf1,0xf5,0x30,0xc2,0x62,0x80,0x7b]
109 vcmppd k4,ymm17,QWORD PTR [rdx-0x400]{1to4},0x7b
111 // CHECK: vcmppd k4, ymm17, qword ptr [rdx - 1032]{1to4}, 123
112 // CHECK: encoding: [0x62,0xf1,0xf5,0x30,0xc2,0xa2,0xf8,0xfb,0xff,0xff,0x7b]
113 vcmppd k4,ymm17,QWORD PTR [rdx-0x408]{1to4},0x7b
115 // CHECK: vcmpps k4, xmm29, xmm28, 171
116 // CHECK: encoding: [0x62,0x91,0x14,0x00,0xc2,0xe4,0xab]
117 vcmpps k4,xmm29,xmm28,0xab
119 // CHECK: vcmpps k4 {k2}, xmm29, xmm28, 171
120 // CHECK: encoding: [0x62,0x91,0x14,0x02,0xc2,0xe4,0xab]
121 vcmpps k4{k2},xmm29,xmm28,0xab
123 // CHECK: vcmpps k4, xmm29, xmm28, 123
124 // CHECK: encoding: [0x62,0x91,0x14,0x00,0xc2,0xe4,0x7b]
125 vcmpps k4,xmm29,xmm28,0x7b
127 // CHECK: vcmpps k4, xmm29, xmmword ptr [rcx], 123
128 // CHECK: encoding: [0x62,0xf1,0x14,0x00,0xc2,0x21,0x7b]
129 vcmpps k4,xmm29,XMMWORD PTR [rcx],0x7b
131 // CHECK: vcmpps k4, xmm29, xmmword ptr [rax + 8*r14 + 291], 123
132 // CHECK: encoding: [0x62,0xb1,0x14,0x00,0xc2,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
133 vcmpps k4,xmm29,XMMWORD PTR [rax+r14*8+0x123],0x7b
135 // CHECK: vcmpps k4, xmm29, dword ptr [rcx]{1to4}, 123
136 // CHECK: encoding: [0x62,0xf1,0x14,0x10,0xc2,0x21,0x7b]
137 vcmpps k4,xmm29,DWORD PTR [rcx]{1to4},0x7b
139 // CHECK: vcmpps k4, xmm29, xmmword ptr [rdx + 2032], 123
140 // CHECK: encoding: [0x62,0xf1,0x14,0x00,0xc2,0x62,0x7f,0x7b]
141 vcmpps k4,xmm29,XMMWORD PTR [rdx+0x7f0],0x7b
143 // CHECK: vcmpps k4, xmm29, xmmword ptr [rdx + 2048], 123
144 // CHECK: encoding: [0x62,0xf1,0x14,0x00,0xc2,0xa2,0x00,0x08,0x00,0x00,0x7b]
145 vcmpps k4,xmm29,XMMWORD PTR [rdx+0x800],0x7b
147 // CHECK: vcmpps k4, xmm29, xmmword ptr [rdx - 2048], 123
148 // CHECK: encoding: [0x62,0xf1,0x14,0x00,0xc2,0x62,0x80,0x7b]
149 vcmpps k4,xmm29,XMMWORD PTR [rdx-0x800],0x7b
151 // CHECK: vcmpps k4, xmm29, xmmword ptr [rdx - 2064], 123
152 // CHECK: encoding: [0x62,0xf1,0x14,0x00,0xc2,0xa2,0xf0,0xf7,0xff,0xff,0x7b]
153 vcmpps k4,xmm29,XMMWORD PTR [rdx-0x810],0x7b
155 // CHECK: vcmpps k4, xmm29, dword ptr [rdx + 508]{1to4}, 123
156 // CHECK: encoding: [0x62,0xf1,0x14,0x10,0xc2,0x62,0x7f,0x7b]
157 vcmpps k4,xmm29,DWORD PTR [rdx+0x1fc]{1to4},0x7b
159 // CHECK: vcmpps k4, xmm29, dword ptr [rdx + 512]{1to4}, 123
160 // CHECK: encoding: [0x62,0xf1,0x14,0x10,0xc2,0xa2,0x00,0x02,0x00,0x00,0x7b]
161 vcmpps k4,xmm29,DWORD PTR [rdx+0x200]{1to4},0x7b
163 // CHECK: vcmpps k4, xmm29, dword ptr [rdx - 512]{1to4}, 123
164 // CHECK: encoding: [0x62,0xf1,0x14,0x10,0xc2,0x62,0x80,0x7b]
165 vcmpps k4,xmm29,DWORD PTR [rdx-0x200]{1to4},0x7b
167 // CHECK: vcmpps k4, xmm29, dword ptr [rdx - 516]{1to4}, 123
168 // CHECK: encoding: [0x62,0xf1,0x14,0x10,0xc2,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
169 vcmpps k4,xmm29,DWORD PTR [rdx-0x204]{1to4},0x7b
171 // CHECK: vcmpps k4, ymm19, ymm18, 171
172 // CHECK: encoding: [0x62,0xb1,0x64,0x20,0xc2,0xe2,0xab]
173 vcmpps k4,ymm19,ymm18,0xab
175 // CHECK: vcmpps k4 {k1}, ymm19, ymm18, 171
176 // CHECK: encoding: [0x62,0xb1,0x64,0x21,0xc2,0xe2,0xab]
177 vcmpps k4{k1},ymm19,ymm18,0xab
179 // CHECK: vcmpps k4, ymm19, ymm18, 123
180 // CHECK: encoding: [0x62,0xb1,0x64,0x20,0xc2,0xe2,0x7b]
181 vcmpps k4,ymm19,ymm18,0x7b
183 // CHECK: vcmpps k4, ymm19, ymmword ptr [rcx], 123
184 // CHECK: encoding: [0x62,0xf1,0x64,0x20,0xc2,0x21,0x7b]
185 vcmpps k4,ymm19,YMMWORD PTR [rcx],0x7b
187 // CHECK: vcmpps k4, ymm19, ymmword ptr [rax + 8*r14 + 291], 123
188 // CHECK: encoding: [0x62,0xb1,0x64,0x20,0xc2,0xa4,0xf0,0x23,0x01,0x00,0x00,0x7b]
189 vcmpps k4,ymm19,YMMWORD PTR [rax+r14*8+0x123],0x7b
191 // CHECK: vcmpps k4, ymm19, dword ptr [rcx]{1to8}, 123
192 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0x21,0x7b]
193 vcmpps k4,ymm19,DWORD PTR [rcx]{1to8},0x7b
195 // CHECK: vcmpps k4, ymm19, ymmword ptr [rdx + 4064], 123
196 // CHECK: encoding: [0x62,0xf1,0x64,0x20,0xc2,0x62,0x7f,0x7b]
197 vcmpps k4,ymm19,YMMWORD PTR [rdx+0xfe0],0x7b
199 // CHECK: vcmpps k4, ymm19, ymmword ptr [rdx + 4096], 123
200 // CHECK: encoding: [0x62,0xf1,0x64,0x20,0xc2,0xa2,0x00,0x10,0x00,0x00,0x7b]
201 vcmpps k4,ymm19,YMMWORD PTR [rdx+0x1000],0x7b
203 // CHECK: vcmpps k4, ymm19, ymmword ptr [rdx - 4096], 123
204 // CHECK: encoding: [0x62,0xf1,0x64,0x20,0xc2,0x62,0x80,0x7b]
205 vcmpps k4,ymm19,YMMWORD PTR [rdx-0x1000],0x7b
207 // CHECK: vcmpps k4, ymm19, ymmword ptr [rdx - 4128], 123
208 // CHECK: encoding: [0x62,0xf1,0x64,0x20,0xc2,0xa2,0xe0,0xef,0xff,0xff,0x7b]
209 vcmpps k4,ymm19,YMMWORD PTR [rdx-0x1020],0x7b
211 // CHECK: vcmpps k4, ymm19, dword ptr [rdx + 508]{1to8}, 123
212 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0x62,0x7f,0x7b]
213 vcmpps k4,ymm19,DWORD PTR [rdx+0x1fc]{1to8},0x7b
215 // CHECK: vcmpps k4, ymm19, dword ptr [rdx + 512]{1to8}, 123
216 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0xa2,0x00,0x02,0x00,0x00,0x7b]
217 vcmpps k4,ymm19,DWORD PTR [rdx+0x200]{1to8},0x7b
219 // CHECK: vcmpps k4, ymm19, dword ptr [rdx - 512]{1to8}, 123
220 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0x62,0x80,0x7b]
221 vcmpps k4,ymm19,DWORD PTR [rdx-0x200]{1to8},0x7b
223 // CHECK: vcmpps k4, ymm19, dword ptr [rdx - 516]{1to8}, 123
224 // CHECK: encoding: [0x62,0xf1,0x64,0x30,0xc2,0xa2,0xfc,0xfd,0xff,0xff,0x7b]
225 vcmpps k4,ymm19,DWORD PTR [rdx-0x204]{1to8},0x7b