1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding < %s | FileCheck %s 2 3// CHECK: vpopcntb %xmm23, %xmm21 4// CHECK: encoding: [0x62,0xa2,0x7d,0x08,0x54,0xef] 5 vpopcntb %xmm23, %xmm21 6 7// CHECK: vpopcntw %xmm23, %xmm21 8// CHECK: encoding: [0x62,0xa2,0xfd,0x08,0x54,0xef] 9 vpopcntw %xmm23, %xmm21 10 11// CHECK: vpopcntb %xmm3, %xmm1 {%k2} 12// CHECK: encoding: [0x62,0xf2,0x7d,0x0a,0x54,0xcb] 13 vpopcntb %xmm3, %xmm1 {%k2} 14 15// CHECK: vpopcntw %xmm3, %xmm1 {%k2} 16// CHECK: encoding: [0x62,0xf2,0xfd,0x0a,0x54,0xcb] 17 vpopcntw %xmm3, %xmm1 {%k2} 18 19// CHECK: vpopcntb (%rcx), %xmm1 20// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x09] 21 vpopcntb (%rcx), %xmm1 22 23// CHECK: vpopcntb -64(%rsp), %xmm1 24// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0xfc] 25 vpopcntb -64(%rsp), %xmm1 26 27// CHECK: vpopcntb 64(%rsp), %xmm1 28// CHECK: encoding: [0x62,0xf2,0x7d,0x08,0x54,0x4c,0x24,0x04] 29 vpopcntb 64(%rsp), %xmm1 30 31// CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm1 32// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10] 33 vpopcntb 268435456(%rcx,%r14,8), %xmm1 34 35// CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm1 36// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0] 37 vpopcntb -536870912(%rcx,%r14,8), %xmm1 38 39// CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm1 40// CHECK: encoding: [0x62,0xb2,0x7d,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0] 41 vpopcntb -536870910(%rcx,%r14,8), %xmm1 42 43// CHECK: vpopcntw (%rcx), %xmm1 44// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x09] 45 vpopcntw (%rcx), %xmm1 46 47// CHECK: vpopcntw -64(%rsp), %xmm1 48// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0xfc] 49 vpopcntw -64(%rsp), %xmm1 50 51// CHECK: vpopcntw 64(%rsp), %xmm1 52// CHECK: encoding: [0x62,0xf2,0xfd,0x08,0x54,0x4c,0x24,0x04] 53 vpopcntw 64(%rsp), %xmm1 54 55// CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm1 56// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10] 57 vpopcntw 268435456(%rcx,%r14,8), %xmm1 58 59// CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm1 60// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0] 61 vpopcntw -536870912(%rcx,%r14,8), %xmm1 62 63// CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm1 64// CHECK: encoding: [0x62,0xb2,0xfd,0x08,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0] 65 vpopcntw -536870910(%rcx,%r14,8), %xmm1 66 67// CHECK: vpopcntb (%rcx), %xmm21 {%k2} 68// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x29] 69 vpopcntb (%rcx), %xmm21 {%k2} 70 71// CHECK: vpopcntb -64(%rsp), %xmm21 {%k2} 72// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0xfc] 73 vpopcntb -64(%rsp), %xmm21 {%k2} 74 75// CHECK: vpopcntb 64(%rsp), %xmm21 {%k2} 76// CHECK: encoding: [0x62,0xe2,0x7d,0x0a,0x54,0x6c,0x24,0x04] 77 vpopcntb 64(%rsp), %xmm21 {%k2} 78 79// CHECK: vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2} 80// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10] 81 vpopcntb 268435456(%rcx,%r14,8), %xmm21 {%k2} 82 83// CHECK: vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2} 84// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0] 85 vpopcntb -536870912(%rcx,%r14,8), %xmm21 {%k2} 86 87// CHECK: vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2} 88// CHECK: encoding: [0x62,0xa2,0x7d,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0] 89 vpopcntb -536870910(%rcx,%r14,8), %xmm21 {%k2} 90 91// CHECK: vpopcntw (%rcx), %xmm21 {%k2} 92// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x29] 93 vpopcntw (%rcx), %xmm21 {%k2} 94 95// CHECK: vpopcntw -64(%rsp), %xmm21 {%k2} 96// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0xfc] 97 vpopcntw -64(%rsp), %xmm21 {%k2} 98 99// CHECK: vpopcntw 64(%rsp), %xmm21 {%k2} 100// CHECK: encoding: [0x62,0xe2,0xfd,0x0a,0x54,0x6c,0x24,0x04] 101 vpopcntw 64(%rsp), %xmm21 {%k2} 102 103// CHECK: vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2} 104// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10] 105 vpopcntw 268435456(%rcx,%r14,8), %xmm21 {%k2} 106 107// CHECK: vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2} 108// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0] 109 vpopcntw -536870912(%rcx,%r14,8), %xmm21 {%k2} 110 111// CHECK: vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2} 112// CHECK: encoding: [0x62,0xa2,0xfd,0x0a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0] 113 vpopcntw -536870910(%rcx,%r14,8), %xmm21 {%k2} 114 115// CHECK: vpopcntb %ymm23, %ymm21 116// CHECK: encoding: [0x62,0xa2,0x7d,0x28,0x54,0xef] 117 vpopcntb %ymm23, %ymm21 118 119// CHECK: vpopcntw %ymm23, %ymm21 120// CHECK: encoding: [0x62,0xa2,0xfd,0x28,0x54,0xef] 121 vpopcntw %ymm23, %ymm21 122 123// CHECK: vpopcntb %ymm3, %ymm1 {%k2} 124// CHECK: encoding: [0x62,0xf2,0x7d,0x2a,0x54,0xcb] 125 vpopcntb %ymm3, %ymm1 {%k2} 126 127// CHECK: vpopcntw %ymm3, %ymm1 {%k2} 128// CHECK: encoding: [0x62,0xf2,0xfd,0x2a,0x54,0xcb] 129 vpopcntw %ymm3, %ymm1 {%k2} 130 131// CHECK: vpopcntb (%rcx), %ymm1 132// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x09] 133 vpopcntb (%rcx), %ymm1 134 135// CHECK: vpopcntb -128(%rsp), %ymm1 136// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0xfc] 137 vpopcntb -128(%rsp), %ymm1 138 139// CHECK: vpopcntb 128(%rsp), %ymm1 140// CHECK: encoding: [0x62,0xf2,0x7d,0x28,0x54,0x4c,0x24,0x04] 141 vpopcntb 128(%rsp), %ymm1 142 143// CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm1 144// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10] 145 vpopcntb 268435456(%rcx,%r14,8), %ymm1 146 147// CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm1 148// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0] 149 vpopcntb -536870912(%rcx,%r14,8), %ymm1 150 151// CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm1 152// CHECK: encoding: [0x62,0xb2,0x7d,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0] 153 vpopcntb -536870910(%rcx,%r14,8), %ymm1 154 155// CHECK: vpopcntw (%rcx), %ymm1 156// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x09] 157 vpopcntw (%rcx), %ymm1 158 159// CHECK: vpopcntw -128(%rsp), %ymm1 160// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0xfc] 161 vpopcntw -128(%rsp), %ymm1 162 163// CHECK: vpopcntw 128(%rsp), %ymm1 164// CHECK: encoding: [0x62,0xf2,0xfd,0x28,0x54,0x4c,0x24,0x04] 165 vpopcntw 128(%rsp), %ymm1 166 167// CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm1 168// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0x10] 169 vpopcntw 268435456(%rcx,%r14,8), %ymm1 170 171// CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm1 172// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x00,0x00,0x00,0xe0] 173 vpopcntw -536870912(%rcx,%r14,8), %ymm1 174 175// CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm1 176// CHECK: encoding: [0x62,0xb2,0xfd,0x28,0x54,0x8c,0xf1,0x02,0x00,0x00,0xe0] 177 vpopcntw -536870910(%rcx,%r14,8), %ymm1 178 179// CHECK: vpopcntb (%rcx), %ymm21 {%k2} 180// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x29] 181 vpopcntb (%rcx), %ymm21 {%k2} 182 183// CHECK: vpopcntb -128(%rsp), %ymm21 {%k2} 184// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0xfc] 185 vpopcntb -128(%rsp), %ymm21 {%k2} 186 187// CHECK: vpopcntb 128(%rsp), %ymm21 {%k2} 188// CHECK: encoding: [0x62,0xe2,0x7d,0x2a,0x54,0x6c,0x24,0x04] 189 vpopcntb 128(%rsp), %ymm21 {%k2} 190 191// CHECK: vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2} 192// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10] 193 vpopcntb 268435456(%rcx,%r14,8), %ymm21 {%k2} 194 195// CHECK: vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2} 196// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0] 197 vpopcntb -536870912(%rcx,%r14,8), %ymm21 {%k2} 198 199// CHECK: vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2} 200// CHECK: encoding: [0x62,0xa2,0x7d,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0] 201 vpopcntb -536870910(%rcx,%r14,8), %ymm21 {%k2} 202 203// CHECK: vpopcntw (%rcx), %ymm21 {%k2} 204// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x29] 205 vpopcntw (%rcx), %ymm21 {%k2} 206 207// CHECK: vpopcntw -128(%rsp), %ymm21 {%k2} 208// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0xfc] 209 vpopcntw -128(%rsp), %ymm21 {%k2} 210 211// CHECK: vpopcntw 128(%rsp), %ymm21 {%k2} 212// CHECK: encoding: [0x62,0xe2,0xfd,0x2a,0x54,0x6c,0x24,0x04] 213 vpopcntw 128(%rsp), %ymm21 {%k2} 214 215// CHECK: vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2} 216// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0x10] 217 vpopcntw 268435456(%rcx,%r14,8), %ymm21 {%k2} 218 219// CHECK: vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2} 220// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x00,0x00,0x00,0xe0] 221 vpopcntw -536870912(%rcx,%r14,8), %ymm21 {%k2} 222 223// CHECK: vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2} 224// CHECK: encoding: [0x62,0xa2,0xfd,0x2a,0x54,0xac,0xf1,0x02,0x00,0x00,0xe0] 225 vpopcntw -536870910(%rcx,%r14,8), %ymm21 {%k2} 226 227// CHECK: vpshufbitqmb %xmm2, %xmm23, %k1 228// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0xca] 229 vpshufbitqmb %xmm2, %xmm23, %k1 230 231// CHECK: vpshufbitqmb %xmm2, %xmm23, %k1 {%k2} 232// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0xca] 233 vpshufbitqmb %xmm2, %xmm23, %k1 {%k2} 234 235// CHECK: vpshufbitqmb (%rcx), %xmm23, %k1 236// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x09] 237 vpshufbitqmb (%rcx), %xmm23, %k1 238 239// CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1 240// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0xfc] 241 vpshufbitqmb -64(%rsp), %xmm23, %k1 242 243// CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1 244// CHECK: encoding: [0x62,0xf2,0x45,0x00,0x8f,0x4c,0x24,0x04] 245 vpshufbitqmb 64(%rsp), %xmm23, %k1 246 247// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 248// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10] 249 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 250 251// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 252// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0] 253 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 254 255// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 256// CHECK: encoding: [0x62,0xb2,0x45,0x00,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0] 257 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 258 259// CHECK: vpshufbitqmb (%rcx), %xmm23, %k1 {%k2} 260// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x09] 261 vpshufbitqmb (%rcx), %xmm23, %k1 {%k2} 262 263// CHECK: vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2} 264// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0xfc] 265 vpshufbitqmb -64(%rsp), %xmm23, %k1 {%k2} 266 267// CHECK: vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2} 268// CHECK: encoding: [0x62,0xf2,0x45,0x02,0x8f,0x4c,0x24,0x04] 269 vpshufbitqmb 64(%rsp), %xmm23, %k1 {%k2} 270 271// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2} 272// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10] 273 vpshufbitqmb 268435456(%rcx,%r14,8), %xmm23, %k1 {%k2} 274 275// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2} 276// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0] 277 vpshufbitqmb -536870912(%rcx,%r14,8), %xmm23, %k1 {%k2} 278 279// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2} 280// CHECK: encoding: [0x62,0xb2,0x45,0x02,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0] 281 vpshufbitqmb -536870910(%rcx,%r14,8), %xmm23, %k1 {%k2} 282 283// CHECK: vpshufbitqmb %ymm2, %ymm23, %k1 284// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0xca] 285 vpshufbitqmb %ymm2, %ymm23, %k1 286 287// CHECK: vpshufbitqmb %ymm2, %ymm23, %k1 {%k2} 288// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0xca] 289 vpshufbitqmb %ymm2, %ymm23, %k1 {%k2} 290 291// CHECK: vpshufbitqmb (%rcx), %ymm23, %k1 292// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x09] 293 vpshufbitqmb (%rcx), %ymm23, %k1 294 295// CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1 296// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0xfc] 297 vpshufbitqmb -128(%rsp), %ymm23, %k1 298 299// CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1 300// CHECK: encoding: [0x62,0xf2,0x45,0x20,0x8f,0x4c,0x24,0x04] 301 vpshufbitqmb 128(%rsp), %ymm23, %k1 302 303// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 304// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10] 305 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 306 307// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 308// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0] 309 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 310 311// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 312// CHECK: encoding: [0x62,0xb2,0x45,0x20,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0] 313 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 314 315// CHECK: vpshufbitqmb (%rcx), %ymm23, %k1 {%k2} 316// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x09] 317 vpshufbitqmb (%rcx), %ymm23, %k1 {%k2} 318 319// CHECK: vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2} 320// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0xfc] 321 vpshufbitqmb -128(%rsp), %ymm23, %k1 {%k2} 322 323// CHECK: vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2} 324// CHECK: encoding: [0x62,0xf2,0x45,0x22,0x8f,0x4c,0x24,0x04] 325 vpshufbitqmb 128(%rsp), %ymm23, %k1 {%k2} 326 327// CHECK: vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2} 328// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0x10] 329 vpshufbitqmb 268435456(%rcx,%r14,8), %ymm23, %k1 {%k2} 330 331// CHECK: vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2} 332// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x00,0x00,0x00,0xe0] 333 vpshufbitqmb -536870912(%rcx,%r14,8), %ymm23, %k1 {%k2} 334 335// CHECK: vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2} 336// CHECK: encoding: [0x62,0xb2,0x45,0x22,0x8f,0x8c,0xf1,0x02,0x00,0x00,0xe0] 337 vpshufbitqmb -536870910(%rcx,%r14,8), %ymm23, %k1 {%k2} 338 339