1// RUN: llvm-mc -triple x86_64-unknown-unknown --show-encoding %s | FileCheck %s 2 3////////////////////////// 4// 2 operand instructions 5///////////////////////// 6 7// vphsubwd 8// CHECK: vphsubwd (%rcx,%rax), %xmm1 9// CHECK: encoding: [0x8f,0xe9,0x78,0xe2,0x0c,0x01] 10 vphsubwd (%rcx,%rax), %xmm1 11// CHECK: vphsubwd %xmm0, %xmm1 12// CHECK: encoding: [0x8f,0xe9,0x78,0xe2,0xc8] 13 vphsubwd %xmm0, %xmm1 14 15// vphsubdq 16// CHECK: vphsubdq (%rcx,%rax), %xmm1 17// CHECK: encoding: [0x8f,0xe9,0x78,0xe3,0x0c,0x01] 18 vphsubdq (%rcx,%rax), %xmm1 19// CHECK: vphsubdq %xmm0, %xmm1 20// CHECK: encoding: [0x8f,0xe9,0x78,0xe3,0xc8] 21 vphsubdq %xmm0, %xmm1 22 23// vphsubbw 24// CHECK: vphsubbw (%rax), %xmm1 25// CHECK: encoding: [0x8f,0xe9,0x78,0xe1,0x08] 26 vphsubbw (%rax), %xmm1 27// CHECK: vphsubbw %xmm2, %xmm1 28// CHECK: encoding: [0x8f,0xe9,0x78,0xe1,0xca] 29 vphsubbw %xmm2, %xmm1 30 31// vphaddwq 32// CHECK: vphaddwq (%rcx), %xmm4 33// CHECK: encoding: [0x8f,0xe9,0x78,0xc7,0x21] 34 vphaddwq (%rcx), %xmm4 35// CHECK: vphaddwq %xmm6, %xmm2 36// CHECK: encoding: [0x8f,0xe9,0x78,0xc7,0xd6] 37 vphaddwq %xmm6, %xmm2 38 39// vphaddwd 40// CHECK: vphaddwd (%rdx,%rax), %xmm7 41// CHECK: encoding: [0x8f,0xe9,0x78,0xc6,0x3c,0x02] 42 vphaddwd (%rdx,%rax), %xmm7 43// CHECK: vphaddwd %xmm3, %xmm4 44// CHECK: encoding: [0x8f,0xe9,0x78,0xc6,0xe3] 45 vphaddwd %xmm3, %xmm4 46 47// vphadduwq 48// CHECK: vphadduwq (%rcx,%rax), %xmm6 49// CHECK: encoding: [0x8f,0xe9,0x78,0xd7,0x34,0x01] 50 vphadduwq (%rcx,%rax), %xmm6 51// CHECK: vphadduwq %xmm7, %xmm0 52// CHECK: encoding: [0x8f,0xe9,0x78,0xd7,0xc7] 53 vphadduwq %xmm7, %xmm0 54 55// vphadduwd 56// CHECK: vphadduwd (%rax), %xmm5 57// CHECK: encoding: [0x8f,0xe9,0x78,0xd6,0x28] 58 vphadduwd (%rax), %xmm5 59// CHECK: vphadduwd %xmm2, %xmm1 60// CHECK: encoding: [0x8f,0xe9,0x78,0xd6,0xca] 61 vphadduwd %xmm2, %xmm1 62 63// vphaddudq 64// CHECK: vphaddudq 8(%rcx,%rax), %xmm4 65// CHECK: encoding: [0x8f,0xe9,0x78,0xdb,0x64,0x01,0x08] 66 vphaddudq 8(%rcx,%rax), %xmm4 67// CHECK: vphaddudq %xmm6, %xmm2 68// CHECK: encoding: [0x8f,0xe9,0x78,0xdb,0xd6] 69 vphaddudq %xmm6, %xmm2 70 71// vphaddubw 72// CHECK: vphaddubw (%rcx), %xmm3 73// CHECK: encoding: [0x8f,0xe9,0x78,0xd1,0x19] 74 vphaddubw (%rcx), %xmm3 75// CHECK: vphaddubw %xmm5, %xmm0 76// CHECK: encoding: [0x8f,0xe9,0x78,0xd1,0xc5] 77 vphaddubw %xmm5, %xmm0 78 79// vphaddubq 80// CHECK: vphaddubq (%rcx), %xmm4 81// CHECK: encoding: [0x8f,0xe9,0x78,0xd3,0x21] 82 vphaddubq (%rcx), %xmm4 83// CHECK: vphaddubq %xmm2, %xmm2 84// CHECK: encoding: [0x8f,0xe9,0x78,0xd3,0xd2] 85 vphaddubq %xmm2, %xmm2 86 87// vphaddubd 88// CHECK: vphaddubd (%rax), %xmm5 89// CHECK: encoding: [0x8f,0xe9,0x78,0xd2,0x28] 90 vphaddubd (%rax), %xmm5 91// CHECK: vphaddubd %xmm5, %xmm7 92// CHECK: encoding: [0x8f,0xe9,0x78,0xd2,0xfd] 93 vphaddubd %xmm5, %xmm7 94 95// vphadddq 96// CHECK: vphadddq (%rdx), %xmm4 97// CHECK: encoding: [0x8f,0xe9,0x78,0xcb,0x22] 98 vphadddq (%rdx), %xmm4 99// CHECK: vphadddq %xmm4, %xmm5 100// CHECK: encoding: [0x8f,0xe9,0x78,0xcb,0xec] 101 vphadddq %xmm4, %xmm5 102 103// vphaddbw 104// CHECK: vphaddbw (%rcx,%rax), %xmm1 105// CHECK: encoding: [0x8f,0xe9,0x78,0xc1,0x0c,0x01] 106 vphaddbw (%rcx,%rax), %xmm1 107// CHECK: vphaddbw %xmm5, %xmm6 108// CHECK: encoding: [0x8f,0xe9,0x78,0xc1,0xf5] 109 vphaddbw %xmm5, %xmm6 110 111// vphaddbq 112// CHECK: vphaddbq (%rcx,%rax), %xmm1 113// CHECK: encoding: [0x8f,0xe9,0x78,0xc3,0x0c,0x01] 114 vphaddbq (%rcx,%rax), %xmm1 115// CHECK: vphaddbq %xmm2, %xmm0 116// CHECK: encoding: [0x8f,0xe9,0x78,0xc3,0xc2] 117 vphaddbq %xmm2, %xmm0 118 119// vphaddbd 120// CHECK: vphaddbd (%rcx,%rax), %xmm1 121// CHECK: encoding: [0x8f,0xe9,0x78,0xc2,0x0c,0x01] 122 vphaddbd (%rcx,%rax), %xmm1 123// CHECK: vphaddbd %xmm1, %xmm3 124// CHECK: encoding: [0x8f,0xe9,0x78,0xc2,0xd9] 125 vphaddbd %xmm1, %xmm3 126 127// vfrczss 128// CHECK: vfrczss (%rcx,%rax), %xmm1 129// CHECK: encoding: [0x8f,0xe9,0x78,0x82,0x0c,0x01] 130 vfrczss (%rcx,%rax), %xmm1 131// CHECK: vfrczss %xmm5, %xmm7 132// CHECK: encoding: [0x8f,0xe9,0x78,0x82,0xfd] 133 vfrczss %xmm5, %xmm7 134 135// vfrczsd 136// CHECK: vfrczsd (%rcx,%rax), %xmm1 137// CHECK: encoding: [0x8f,0xe9,0x78,0x83,0x0c,0x01] 138 vfrczsd (%rcx,%rax), %xmm1 139// CHECK: vfrczsd %xmm7, %xmm0 140// CHECK: encoding: [0x8f,0xe9,0x78,0x83,0xc7] 141 vfrczsd %xmm7, %xmm0 142 143// vfrczps 144// CHECK: vfrczps 4(%rax), %xmm3 145// CHECK: encoding: [0x8f,0xe9,0x78,0x80,0x58,0x04] 146 vfrczps 4(%rax), %xmm3 147// CHECK: vfrczps %xmm6, %xmm5 148// CHECK: encoding: [0x8f,0xe9,0x78,0x80,0xee] 149 vfrczps %xmm6, %xmm5 150// CHECK: vfrczps (%rcx), %xmm1 151// CHECK: encoding: [0x8f,0xe9,0x78,0x80,0x09] 152 vfrczps (%rcx), %xmm1 153// CHECK: vfrczps %ymm2, %ymm4 154// CHECK: encoding: [0x8f,0xe9,0x7c,0x80,0xe2] 155 vfrczps %ymm2, %ymm4 156 157// vfrczpd 158// CHECK: vfrczpd (%rcx,%rax), %xmm1 159// CHECK: encoding: [0x8f,0xe9,0x78,0x81,0x0c,0x01] 160 vfrczpd (%rcx,%rax), %xmm1 161// CHECK: vfrczpd %xmm7, %xmm0 162// CHECK: encoding: [0x8f,0xe9,0x78,0x81,0xc7] 163 vfrczpd %xmm7, %xmm0 164// CHECK: vfrczpd (%rcx,%rax), %ymm2 165// CHECK: encoding: [0x8f,0xe9,0x7c,0x81,0x14,0x01] 166 vfrczpd (%rcx,%rax), %ymm2 167// CHECK: vfrczpd %ymm5, %ymm3 168// CHECK: encoding: [0x8f,0xe9,0x7c,0x81,0xdd] 169 vfrczpd %ymm5, %ymm3 170 171 172 173////////////////////////// 174// 3 operand instructions 175///////////////////////// 176 177// vpshlw 178// CHECK: vpshlw %xmm0, %xmm1, %xmm2 179// CHECK: encoding: [0x8f,0xe9,0x78,0x95,0xd1] 180 vpshlw %xmm0, %xmm1, %xmm2 181// CHECK: vpshlw (%rax), %xmm1, %xmm2 182// CHECK: encoding: [0x8f,0xe9,0xf0,0x95,0x10] 183 vpshlw (%rax), %xmm1, %xmm2 184// CHECK: vpshlw %xmm0, (%rax,%rcx), %xmm2 185// CHECK: encoding: [0x8f,0xe9,0x78,0x95,0x14,0x08] 186 vpshlw %xmm0, (%rax,%rcx), %xmm2 187 188// vpshlq 189// CHECK: vpshlq %xmm2, %xmm4, %xmm6 190// CHECK: encoding: [0x8f,0xe9,0x68,0x97,0xf4] 191 vpshlq %xmm2, %xmm4, %xmm6 192// CHECK: vpshlq (%rcx), %xmm2, %xmm1 193// CHECK: encoding: [0x8f,0xe9,0xe8,0x97,0x09] 194 vpshlq (%rcx), %xmm2, %xmm1 195// CHECK: vpshlq %xmm5, (%rdx,%rcx), %xmm6 196// CHECK: encoding: [0x8f,0xe9,0x50,0x97,0x34,0x0a] 197 vpshlq %xmm5, (%rdx,%rcx), %xmm6 198 199// vpshld 200// CHECK: vpshld %xmm7, %xmm5, %xmm3 201// CHECK: encoding: [0x8f,0xe9,0x40,0x96,0xdd] 202 vpshld %xmm7, %xmm5, %xmm3 203// CHECK: vpshld 4(%rax), %xmm3, %xmm3 204// CHECK: encoding: [0x8f,0xe9,0xe0,0x96,0x58,0x04] 205 vpshld 4(%rax), %xmm3, %xmm3 206// CHECK: vpshld %xmm1, (%rax,%rcx), %xmm5 207// CHECK: encoding: [0x8f,0xe9,0x70,0x96,0x2c,0x08] 208 vpshld %xmm1, (%rax,%rcx), %xmm5 209 210// vpshlb 211// CHECK: vpshlb %xmm1, %xmm2, %xmm3 212// CHECK: encoding: [0x8f,0xe9,0x70,0x94,0xda] 213 vpshlb %xmm1, %xmm2, %xmm3 214// CHECK: vpshlb (%rcx), %xmm0, %xmm7 215// CHECK: encoding: [0x8f,0xe9,0xf8,0x94,0x39] 216 vpshlb (%rcx), %xmm0, %xmm7 217// CHECK: vpshlb %xmm2, (%rax,%rdx), %xmm3 218// CHECK: encoding: [0x8f,0xe9,0x68,0x94,0x1c,0x10] 219 vpshlb %xmm2, (%rax,%rdx), %xmm3 220 221// vpshaw 222// CHECK: vpshaw %xmm7, %xmm5, %xmm3 223// CHECK: encoding: [0x8f,0xe9,0x40,0x99,0xdd] 224 vpshaw %xmm7, %xmm5, %xmm3 225// CHECK: vpshaw (%rax), %xmm2, %xmm1 226// CHECK: encoding: [0x8f,0xe9,0xe8,0x99,0x08] 227 vpshaw (%rax), %xmm2, %xmm1 228// CHECK: vpshaw %xmm0, 8(%rax,%rcx), %xmm3 229// CHECK: encoding: [0x8f,0xe9,0x78,0x99,0x5c,0x08,0x08] 230 vpshaw %xmm0, 8(%rax,%rcx), %xmm3 231 232// vpshaq 233// CHECK: vpshaq %xmm4, %xmm4, %xmm4 234// CHECK: encoding: [0x8f,0xe9,0x58,0x9b,0xe4] 235 vpshaq %xmm4, %xmm4, %xmm4 236// CHECK: vpshaq (%rcx), %xmm2, %xmm0 237// CHECK: encoding: [0x8f,0xe9,0xe8,0x9b,0x01] 238 vpshaq (%rcx), %xmm2, %xmm0 239// CHECK: vpshaq %xmm6, (%rax,%rcx), %xmm5 240// CHECK: encoding: [0x8f,0xe9,0x48,0x9b,0x2c,0x08] 241 vpshaq %xmm6, (%rax,%rcx), %xmm5 242 243// vpshad 244// CHECK: vpshad %xmm5, %xmm4, %xmm0 245// CHECK: encoding: [0x8f,0xe9,0x50,0x9a,0xc4] 246 vpshad %xmm5, %xmm4, %xmm0 247// CHECK: vpshad (%rax), %xmm2, %xmm5 248// CHECK: encoding: [0x8f,0xe9,0xe8,0x9a,0x28] 249 vpshad (%rax), %xmm2, %xmm5 250// CHECK: vpshad %xmm2, (%rax), %xmm5 251// CHECK: encoding: [0x8f,0xe9,0x68,0x9a,0x28] 252 vpshad %xmm2, (%rax), %xmm5 253 254// vpshab 255// CHECK: vpshab %xmm1, %xmm1, %xmm0 256// CHECK: encoding: [0x8f,0xe9,0x70,0x98,0xc1] 257 vpshab %xmm1, %xmm1, %xmm0 258// CHECK: vpshab (%rcx), %xmm4, %xmm0 259// CHECK: encoding: [0x8f,0xe9,0xd8,0x98,0x01] 260 vpshab (%rcx), %xmm4, %xmm0 261// CHECK: vpshab %xmm5, (%rcx), %xmm3 262// CHECK: encoding: [0x8f,0xe9,0x50,0x98,0x19] 263 vpshab %xmm5, (%rcx), %xmm3 264 265// vprotw 266// CHECK: vprotw (%rax), %xmm3, %xmm6 267// CHECK: encoding: [0x8f,0xe9,0xe0,0x91,0x30] 268 vprotw (%rax), %xmm3, %xmm6 269// CHECK: vprotw %xmm5, (%rax,%rcx), %xmm1 270// CHECK: encoding: [0x8f,0xe9,0x50,0x91,0x0c,0x08] 271 vprotw %xmm5, (%rax,%rcx), %xmm1 272// CHECK: vprotw %xmm0, %xmm1, %xmm2 273// CHECK: encoding: [0x8f,0xe9,0x78,0x91,0xd1] 274 vprotw %xmm0, %xmm1, %xmm2 275// CHECK: vprotw $42, (%rcx), %xmm1 276// CHECK: encoding: [0x8f,0xe8,0x78,0xc1,0x09,0x2a] 277 vprotw $42, (%rcx), %xmm1 278// CHECK: vprotw $41, (%rax), %xmm4 279// CHECK: encoding: [0x8f,0xe8,0x78,0xc1,0x20,0x29] 280 vprotw $41, (%rax), %xmm4 281// CHECK: vprotw $40, %xmm1, %xmm3 282// CHECK: encoding: [0x8f,0xe8,0x78,0xc1,0xd9,0x28] 283 vprotw $40, %xmm1, %xmm3 284 285// vprotq 286// CHECK: vprotq (%rax), %xmm1, %xmm2 287// CHECK: encoding: [0x8f,0xe9,0xf0,0x93,0x10] 288 vprotq (%rax), %xmm1, %xmm2 289// CHECK: vprotq (%rax,%rcx), %xmm1, %xmm2 290// CHECK: encoding: [0x8f,0xe9,0xf0,0x93,0x14,0x08] 291 vprotq (%rax,%rcx), %xmm1, %xmm2 292// CHECK: vprotq %xmm0, %xmm1, %xmm2 293// CHECK: encoding: [0x8f,0xe9,0x78,0x93,0xd1] 294 vprotq %xmm0, %xmm1, %xmm2 295// CHECK: vprotq $42, (%rax), %xmm2 296// CHECK: encoding: [0x8f,0xe8,0x78,0xc3,0x10,0x2a] 297 vprotq $42, (%rax), %xmm2 298// CHECK: vprotq $42, (%rax,%rcx), %xmm2 299// CHECK: encoding: [0x8f,0xe8,0x78,0xc3,0x14,0x08,0x2a] 300 vprotq $42, (%rax,%rcx), %xmm2 301// CHECK: vprotq $42, %xmm1, %xmm2 302// CHECK: encoding: [0x8f,0xe8,0x78,0xc3,0xd1,0x2a] 303 vprotq $42, %xmm1, %xmm2 304 305// vprotd 306// CHECK: vprotd (%rax), %xmm0, %xmm3 307// CHECK: encoding: [0x8f,0xe9,0xf8,0x92,0x18] 308 vprotd (%rax), %xmm0, %xmm3 309// CHECK: vprotd %xmm2, (%rax,%rcx), %xmm4 310// CHECK: encoding: [0x8f,0xe9,0x68,0x92,0x24,0x08] 311 vprotd %xmm2, (%rax,%rcx), %xmm4 312// CHECK: vprotd %xmm5, %xmm3, %xmm2 313// CHECK: encoding: [0x8f,0xe9,0x50,0x92,0xd3] 314 vprotd %xmm5, %xmm3, %xmm2 315// CHECK: vprotd $43, (%rcx), %xmm6 316// CHECK: encoding: [0x8f,0xe8,0x78,0xc2,0x31,0x2b] 317 vprotd $43, (%rcx), %xmm6 318// CHECK: vprotd $44, (%rax,%rcx), %xmm7 319// CHECK: encoding: [0x8f,0xe8,0x78,0xc2,0x3c,0x08,0x2c] 320 vprotd $44, (%rax,%rcx), %xmm7 321// CHECK: vprotd $45, %xmm4, %xmm4 322// CHECK: encoding: [0x8f,0xe8,0x78,0xc2,0xe4,0x2d] 323 vprotd $45, %xmm4, %xmm4 324 325// vprotb 326// CHECK: vprotb (%rcx), %xmm2, %xmm5 327// CHECK: encoding: [0x8f,0xe9,0xe8,0x90,0x29] 328 vprotb (%rcx), %xmm2, %xmm5 329// CHECK: vprotb %xmm5, (%rax,%rcx), %xmm4 330// CHECK: encoding: [0x8f,0xe9,0x50,0x90,0x24,0x08] 331 vprotb %xmm5, (%rax,%rcx), %xmm4 332// CHECK: vprotb %xmm4, %xmm3, %xmm2 333// CHECK: encoding: [0x8f,0xe9,0x58,0x90,0xd3] 334 vprotb %xmm4, %xmm3, %xmm2 335// CHECK: vprotb $46, (%rax), %xmm3 336// CHECK: encoding: [0x8f,0xe8,0x78,0xc0,0x18,0x2e] 337 vprotb $46, (%rax), %xmm3 338// CHECK: vprotb $47, (%rax,%rcx), %xmm7 339// CHECK: encoding: [0x8f,0xe8,0x78,0xc0,0x3c,0x08,0x2f] 340 vprotb $47, (%rax,%rcx), %xmm7 341// CHECK: vprotb $48, %xmm5, %xmm5 342// CHECK: encoding: [0x8f,0xe8,0x78,0xc0,0xed,0x30] 343 vprotb $48, %xmm5, %xmm5 344 345////////////////////////// 346// 4 operand instructions 347///////////////////////// 348 349// vpmadcswd 350// CHECK: vpmadcswd %xmm1, %xmm2, %xmm3, %xmm4 351// CHECK: encoding: [0x8f,0xe8,0x60,0xb6,0xe2,0x10] 352 vpmadcswd %xmm1, %xmm2, %xmm3, %xmm4 353// CHECK: vpmadcswd %xmm1, (%rax), %xmm3, %xmm4 354// CHECK: encoding: [0x8f,0xe8,0x60,0xb6,0x20,0x10] 355 vpmadcswd %xmm1, (%rax), %xmm3, %xmm4 356 357// vpmadcsswd 358// CHECK: vpmadcsswd %xmm1, %xmm4, %xmm6, %xmm4 359// CHECK: encoding: [0x8f,0xe8,0x48,0xa6,0xe4,0x10] 360 vpmadcsswd %xmm1, %xmm4, %xmm6, %xmm4 361// CHECK: vpmadcsswd %xmm1, (%rax,%rcx), %xmm3, %xmm4 362// CHECK: encoding: [0x8f,0xe8,0x60,0xa6,0x24,0x08,0x10] 363 vpmadcsswd %xmm1, (%rax,%rcx), %xmm3, %xmm4 364 365// vpmacsww 366// CHECK: vpmacsww %xmm0, %xmm2, %xmm5, %xmm4 367// CHECK: encoding: [0x8f,0xe8,0x50,0x95,0xe2,0x00] 368 vpmacsww %xmm0, %xmm2, %xmm5, %xmm4 369// CHECK: vpmacsww %xmm1, (%rax), %xmm6, %xmm4 370// CHECK: encoding: [0x8f,0xe8,0x48,0x95,0x20,0x10] 371 vpmacsww %xmm1, (%rax), %xmm6, %xmm4 372 373// vpmacswd 374// CHECK: vpmacswd %xmm4, %xmm5, %xmm6, %xmm7 375// CHECK: encoding: [0x8f,0xe8,0x48,0x96,0xfd,0x40] 376 vpmacswd %xmm4, %xmm5, %xmm6, %xmm7 377// CHECK: vpmacswd %xmm0, (%rax), %xmm1, %xmm2 378// CHECK: encoding: [0x8f,0xe8,0x70,0x96,0x10,0x00] 379 vpmacswd %xmm0, (%rax), %xmm1, %xmm2 380 381// vpmacssww 382// CHECK: vpmacssww %xmm4, %xmm3, %xmm2, %xmm1 383// CHECK: encoding: [0x8f,0xe8,0x68,0x85,0xcb,0x40] 384 vpmacssww %xmm4, %xmm3, %xmm2, %xmm1 385// CHECK: vpmacssww %xmm6, (%rcx), %xmm7, %xmm7 386// CHECK: encoding: [0x8f,0xe8,0x40,0x85,0x39,0x60] 387 vpmacssww %xmm6, (%rcx), %xmm7, %xmm7 388 389// vpmacsswd 390// CHECK: vpmacsswd %xmm4, %xmm2, %xmm4, %xmm2 391// CHECK: encoding: [0x8f,0xe8,0x58,0x86,0xd2,0x40] 392 vpmacsswd %xmm4, %xmm2, %xmm4, %xmm2 393// CHECK: vpmacsswd %xmm0, 8(%rax,%rcx), %xmm1, %xmm0 394// CHECK: encoding: [0x8f,0xe8,0x70,0x86,0x44,0x08,0x08,0x00] 395 vpmacsswd %xmm0, 8(%rax,%rcx), %xmm1, %xmm0 396 397// vpmacssdql 398// CHECK: vpmacssdql %xmm1, %xmm1, %xmm2, %xmm4 399// CHECK: encoding: [0x8f,0xe8,0x68,0x87,0xe1,0x10] 400 vpmacssdql %xmm1, %xmm1, %xmm2, %xmm4 401// CHECK: vpmacssdql %xmm7, (%rcx), %xmm6, %xmm5 402// CHECK: encoding: [0x8f,0xe8,0x48,0x87,0x29,0x70] 403 vpmacssdql %xmm7, (%rcx), %xmm6, %xmm5 404 405// vpmacssdqh 406// CHECK: vpmacssdqh %xmm3, %xmm2, %xmm0, %xmm1 407// CHECK: encoding: [0x8f,0xe8,0x78,0x8f,0xca,0x30] 408 vpmacssdqh %xmm3, %xmm2, %xmm0, %xmm1 409// CHECK: vpmacssdqh %xmm7, (%rax,%rcx), %xmm2, %xmm3 410// CHECK: encoding: [0x8f,0xe8,0x68,0x8f,0x1c,0x08,0x70] 411 vpmacssdqh %xmm7, (%rax,%rcx), %xmm2, %xmm3 412 413// vpmacssdd 414// CHECK: vpmacssdd %xmm2, %xmm2, %xmm3, %xmm5 415// CHECK: encoding: [0x8f,0xe8,0x60,0x8e,0xea,0x20] 416 vpmacssdd %xmm2, %xmm2, %xmm3, %xmm5 417// CHECK: vpmacssdd %xmm4, (%rax), %xmm1, %xmm2 418// CHECK: encoding: [0x8f,0xe8,0x70,0x8e,0x10,0x40] 419 vpmacssdd %xmm4, (%rax), %xmm1, %xmm2 420 421// vpmacsdql 422// CHECK: vpmacsdql %xmm3, %xmm0, %xmm6, %xmm7 423// CHECK: encoding: [0x8f,0xe8,0x48,0x97,0xf8,0x30] 424 vpmacsdql %xmm3, %xmm0, %xmm6, %xmm7 425// CHECK: vpmacsdql %xmm5, 8(%rcx), %xmm3, %xmm5 426// CHECK: encoding: [0x8f,0xe8,0x60,0x97,0x69,0x08,0x50] 427 vpmacsdql %xmm5, 8(%rcx), %xmm3, %xmm5 428 429// vpmacsdqh 430// CHECK: vpmacsdqh %xmm7, %xmm5, %xmm3, %xmm2 431// CHECK: encoding: [0x8f,0xe8,0x60,0x9f,0xd5,0x70] 432 vpmacsdqh %xmm7, %xmm5, %xmm3, %xmm2 433// CHECK: vpmacsdqh %xmm5, 4(%rax), %xmm2, %xmm0 434// CHECK: encoding: [0x8f,0xe8,0x68,0x9f,0x40,0x04,0x50] 435 vpmacsdqh %xmm5, 4(%rax), %xmm2, %xmm0 436 437// vpmacsdd 438// CHECK: vpmacsdd %xmm4, %xmm6, %xmm4, %xmm2 439// CHECK: encoding: [0x8f,0xe8,0x58,0x9e,0xd6,0x40] 440 vpmacsdd %xmm4, %xmm6, %xmm4, %xmm2 441// CHECK: vpmacsdd %xmm4, (%rax,%rcx), %xmm4, %xmm3 442// CHECK: encoding: [0x8f,0xe8,0x58,0x9e,0x1c,0x08,0x40] 443 vpmacsdd %xmm4, (%rax,%rcx), %xmm4, %xmm3 444 445// vpcomw 446// CHECK: vpcomw $42, %xmm2, %xmm3, %xmm4 447// CHECK: encoding: [0x8f,0xe8,0x60,0xcd,0xe2,0x2a] 448 vpcomw $42, %xmm2, %xmm3, %xmm4 449// CHECK: vpcomw $42, (%rax), %xmm3, %xmm4 450// CHECK: encoding: [0x8f,0xe8,0x60,0xcd,0x20,0x2a] 451 vpcomw $42, (%rax), %xmm3, %xmm4 452 453// vpcomuw 454// CHECK: vpcomuw $43, %xmm1, %xmm3, %xmm5 455// CHECK: encoding: [0x8f,0xe8,0x60,0xed,0xe9,0x2b] 456 vpcomuw $43, %xmm1, %xmm3, %xmm5 457// CHECK: vpcomuw $44, (%rax,%rcx), %xmm0, %xmm6 458// CHECK: encoding: [0x8f,0xe8,0x78,0xed,0x34,0x08,0x2c] 459 vpcomuw $44, (%rax,%rcx), %xmm0, %xmm6 460 461// vpcomuq 462// CHECK: vpcomuq $45, %xmm3, %xmm3, %xmm7 463// CHECK: encoding: [0x8f,0xe8,0x60,0xef,0xfb,0x2d] 464 vpcomuq $45, %xmm3, %xmm3, %xmm7 465// CHECK: vpcomuq $46, (%rax), %xmm3, %xmm1 466// CHECK: encoding: [0x8f,0xe8,0x60,0xef,0x08,0x2e] 467 vpcomuq $46, (%rax), %xmm3, %xmm1 468 469// vpcomud 470// CHECK: vpcomud $47, %xmm0, %xmm1, %xmm2 471// CHECK: encoding: [0x8f,0xe8,0x70,0xee,0xd0,0x2f] 472 vpcomud $47, %xmm0, %xmm1, %xmm2 473// CHECK: vpcomud $48, 4(%rax), %xmm6, %xmm3 474// CHECK: encoding: [0x8f,0xe8,0x48,0xee,0x58,0x04,0x30] 475 vpcomud $48, 4(%rax), %xmm6, %xmm3 476 477// vpcomub 478// CHECK: vpcomub $49, %xmm3, %xmm4, %xmm5 479// CHECK: encoding: [0x8f,0xe8,0x58,0xec,0xeb,0x31] 480 vpcomub $49, %xmm3, %xmm4, %xmm5 481// CHECK: vpcomub $50, (%rcx), %xmm6, %xmm2 482// CHECK: encoding: [0x8f,0xe8,0x48,0xec,0x11,0x32] 483 vpcomub $50, (%rcx), %xmm6, %xmm2 484 485// vpcomq 486// CHECK: vpcomq $51, %xmm3, %xmm0, %xmm5 487// CHECK: encoding: [0x8f,0xe8,0x78,0xcf,0xeb,0x33] 488 vpcomq $51, %xmm3, %xmm0, %xmm5 489// CHECK: vpcomq $52, (%rax), %xmm1, %xmm7 490// CHECK: encoding: [0x8f,0xe8,0x70,0xcf,0x38,0x34] 491 vpcomq $52, (%rax), %xmm1, %xmm7 492 493// vpcomd 494// CHECK: vpcomd $53, %xmm3, %xmm3, %xmm0 495// CHECK: encoding: [0x8f,0xe8,0x60,0xce,0xc3,0x35] 496 vpcomd $53, %xmm3, %xmm3, %xmm0 497// CHECK: vpcomd $54, (%rcx), %xmm2, %xmm2 498// CHECK: encoding: [0x8f,0xe8,0x68,0xce,0x11,0x36] 499 vpcomd $54, (%rcx), %xmm2, %xmm2 500 501// vpcomb 502// CHECK: vpcomb $55, %xmm6, %xmm4, %xmm2 503// CHECK: encoding: [0x8f,0xe8,0x58,0xcc,0xd6,0x37] 504 vpcomb $55, %xmm6, %xmm4, %xmm2 505// CHECK: vpcomb $56, 8(%rax), %xmm3, %xmm2 506// CHECK: encoding: [0x8f,0xe8,0x60,0xcc,0x50,0x08,0x38] 507 vpcomb $56, 8(%rax), %xmm3, %xmm2 508 509 510// vpperm 511// CHECK: vpperm %xmm1, %xmm2, %xmm3, %xmm4 512// CHECK: encoding: [0x8f,0xe8,0x60,0xa3,0xe2,0x10] 513 vpperm %xmm1, %xmm2, %xmm3, %xmm4 514// CHECK: vpperm (%rax), %xmm2, %xmm3, %xmm4 515// CHECK: encoding: [0x8f,0xe8,0xe0,0xa3,0x20,0x20] 516 vpperm (%rax), %xmm2, %xmm3, %xmm4 517// CHECK: vpperm %xmm1, (%rax), %xmm3, %xmm4 518// CHECK: encoding: [0x8f,0xe8,0x60,0xa3,0x20,0x10] 519 vpperm %xmm1, (%rax), %xmm3, %xmm4 520 521// vpcmov 522// CHECK: vpcmov %xmm1, %xmm2, %xmm3, %xmm4 523// CHECK: encoding: [0x8f,0xe8,0x60,0xa2,0xe2,0x10] 524 vpcmov %xmm1, %xmm2, %xmm3, %xmm4 525// CHECK: vpcmov (%rax), %xmm2, %xmm3, %xmm4 526// CHECK: encoding: [0x8f,0xe8,0xe0,0xa2,0x20,0x20] 527 vpcmov (%rax), %xmm2, %xmm3, %xmm4 528// CHECK: vpcmov %xmm1, (%rax), %xmm3, %xmm4 529// CHECK: encoding: [0x8f,0xe8,0x60,0xa2,0x20,0x10] 530 vpcmov %xmm1, (%rax), %xmm3, %xmm4 531// CHECK: vpcmov %ymm1, %ymm2, %ymm3, %ymm4 532// CHECK: encoding: [0x8f,0xe8,0x64,0xa2,0xe2,0x10] 533 vpcmov %ymm1, %ymm2, %ymm3, %ymm4 534// CHECK: vpcmov (%rax), %ymm2, %ymm3, %ymm4 535// CHECK: encoding: [0x8f,0xe8,0xe4,0xa2,0x20,0x20] 536 vpcmov (%rax), %ymm2, %ymm3, %ymm4 537// CHECK: vpcmov %ymm1, (%rax), %ymm3, %ymm4 538// CHECK: encoding: [0x8f,0xe8,0x64,0xa2,0x20,0x10] 539 vpcmov %ymm1, (%rax), %ymm3, %ymm4 540 541 542////////////////////////// 543// 5 operand instructions 544///////////////////////// 545// vpermil2pd 546// CHECK: vpermil2pd $1, %xmm5, %xmm2, %xmm1, %xmm7 547// CHECK: encoding: [0xc4,0xe3,0x71,0x49,0xfa,0x51] 548 vpermil2pd $1, %xmm5, %xmm2, %xmm1, %xmm7 549// CHECK: vpermil2pd $2, (%rax), %xmm3, %xmm3, %xmm4 550// CHECK: encoding: [0xc4,0xe3,0xe1,0x49,0x20,0x32] 551 vpermil2pd $2, (%rax), %xmm3, %xmm3, %xmm4 552// CHECK: vpermil2pd $3, 8(%rax), %ymm0, %ymm4, %ymm6 553// CHECK: encoding: [0xc4,0xe3,0xdd,0x49,0x70,0x08,0x03] 554 vpermil2pd $3, 8(%rax), %ymm0, %ymm4, %ymm6 555// CHECK: vpermil2pd $0, %xmm3, (%rax,%rcx), %xmm1, %xmm0 556// CHECK: encoding: [0xc4,0xe3,0x71,0x49,0x04,0x08,0x30] 557 vpermil2pd $0, %xmm3, (%rax,%rcx), %xmm1, %xmm0 558// CHECK: vpermil2pd $1, %ymm1, %ymm2, %ymm3, %ymm4 559// CHECK: encoding: [0xc4,0xe3,0x65,0x49,0xe2,0x11] 560 vpermil2pd $1, %ymm1, %ymm2, %ymm3, %ymm4 561// CHECK: vpermil2pd $2, %ymm1, (%rax), %ymm3, %ymm4 562// CHECK: encoding: [0xc4,0xe3,0x65,0x49,0x20,0x12] 563 vpermil2pd $2, %ymm1, (%rax), %ymm3, %ymm4 564 565// vpermil2ps 566// CHECK: vpermil2ps $0, %xmm4, %xmm3, %xmm2, %xmm1 567// CHECK: encoding: [0xc4,0xe3,0x69,0x48,0xcb,0x40] 568 vpermil2ps $0, %xmm4, %xmm3, %xmm2, %xmm1 569// CHECK: vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0 570// CHECK: encoding: [0xc4,0xe3,0xe1,0x48,0x40,0x04,0x21] 571 vpermil2ps $1, 4(%rax), %xmm2, %xmm3, %xmm0 572// CHECK: vpermil2ps $2, (%rax), %ymm1, %ymm5, %ymm6 573// CHECK: encoding: [0xc4,0xe3,0xd5,0x48,0x30,0x12] 574 vpermil2ps $2, (%rax), %ymm1, %ymm5, %ymm6 575// CHECK: vpermil2ps $3, %xmm1, (%rax), %xmm3, %xmm4 576// CHECK: encoding: [0xc4,0xe3,0x61,0x48,0x20,0x13] 577 vpermil2ps $3, %xmm1, (%rax), %xmm3, %xmm4 578// CHECK: vpermil2ps $0, %ymm4, %ymm4, %ymm2, %ymm2 579// CHECK: encoding: [0xc4,0xe3,0x6d,0x48,0xd4,0x40] 580 vpermil2ps $0, %ymm4, %ymm4, %ymm2, %ymm2 581// CHECK: vpermil2pd $1, %ymm1, 4(%rax), %ymm1, %ymm0 582// CHECK: encoding: [0xc4,0xe3,0x75,0x49,0x40,0x04,0x11] 583 vpermil2pd $1, %ymm1, 4(%rax), %ymm1, %ymm0 584 585