1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s 3 4addpd %xmm0, %xmm2 5addpd (%rax), %xmm2 6 7addsd %xmm0, %xmm2 8addsd (%rax), %xmm2 9 10andnpd %xmm0, %xmm2 11andnpd (%rax), %xmm2 12 13andpd %xmm0, %xmm2 14andpd (%rax), %xmm2 15 16clflush (%rax) 17 18cmppd $0, %xmm0, %xmm2 19cmppd $0, (%rax), %xmm2 20 21cmpsd $0, %xmm0, %xmm2 22cmpsd $0, (%rax), %xmm2 23 24comisd %xmm0, %xmm1 25comisd (%rax), %xmm1 26 27cvtdq2pd %xmm0, %xmm2 28cvtdq2pd (%rax), %xmm2 29 30cvtdq2ps %xmm0, %xmm2 31cvtdq2ps (%rax), %xmm2 32 33cvtpd2dq %xmm0, %xmm2 34cvtpd2dq (%rax), %xmm2 35 36cvtpd2pi %xmm0, %mm2 37cvtpd2pi (%rax), %mm2 38 39cvtpd2ps %xmm0, %xmm2 40cvtpd2ps (%rax), %xmm2 41 42cvtpi2pd %mm0, %xmm2 43cvtpi2pd (%rax), %xmm2 44 45cvtps2dq %xmm0, %xmm2 46cvtps2dq (%rax), %xmm2 47 48cvtps2pd %xmm0, %xmm2 49cvtps2pd (%rax), %xmm2 50 51cvtsd2si %xmm0, %ecx 52cvtsd2si %xmm0, %rcx 53cvtsd2si (%rax), %ecx 54cvtsd2si (%rax), %rcx 55 56cvtsd2ss %xmm0, %xmm2 57cvtsd2ss (%rax), %xmm2 58 59cvtsi2sd %ecx, %xmm2 60cvtsi2sd %rcx, %xmm2 61cvtsi2sd (%rax), %xmm2 62cvtsi2sd (%rax), %xmm2 63 64cvtss2sd %xmm0, %xmm2 65cvtss2sd (%rax), %xmm2 66 67cvttpd2dq %xmm0, %xmm2 68cvttpd2dq (%rax), %xmm2 69 70cvttpd2pi %xmm0, %mm2 71cvttpd2pi (%rax), %mm2 72 73cvttps2dq %xmm0, %xmm2 74cvttps2dq (%rax), %xmm2 75 76cvttsd2si %xmm0, %ecx 77cvttsd2si %xmm0, %rcx 78cvttsd2si (%rax), %ecx 79cvttsd2si (%rax), %rcx 80 81divpd %xmm0, %xmm2 82divpd (%rax), %xmm2 83 84divsd %xmm0, %xmm2 85divsd (%rax), %xmm2 86 87lfence 88 89maskmovdqu %xmm0, %xmm1 90 91maxpd %xmm0, %xmm2 92maxpd (%rax), %xmm2 93 94maxsd %xmm0, %xmm2 95maxsd (%rax), %xmm2 96 97minpd %xmm0, %xmm2 98minpd (%rax), %xmm2 99 100minsd %xmm0, %xmm2 101minsd (%rax), %xmm2 102 103movapd %xmm0, %xmm2 104movapd %xmm0, (%rax) 105movapd (%rax), %xmm2 106 107movd %eax, %xmm2 108movd (%rax), %xmm2 109 110movd %xmm0, %ecx 111movd %xmm0, (%rax) 112 113movdqa %xmm0, %xmm2 114movdqa %xmm0, (%rax) 115movdqa (%rax), %xmm2 116 117movdqu %xmm0, %xmm2 118movdqu %xmm0, (%rax) 119movdqu (%rax), %xmm2 120 121movdq2q %xmm0, %mm2 122 123movhpd %xmm0, (%rax) 124movhpd (%rax), %xmm2 125 126movlpd %xmm0, (%rax) 127movlpd (%rax), %xmm2 128 129movmskpd %xmm0, %rcx 130 131movntil %eax, (%rax) 132movntiq %rax, (%rax) 133 134movntdq %xmm0, (%rax) 135movntpd %xmm0, (%rax) 136 137movq %xmm0, %xmm2 138 139movq %rax, %xmm2 140movq (%rax), %xmm2 141 142movq %xmm0, %rcx 143movq %xmm0, (%rax) 144 145movq2dq %mm0, %xmm2 146 147movsd %xmm0, %xmm2 148movsd %xmm0, (%rax) 149movsd (%rax), %xmm2 150 151movupd %xmm0, %xmm2 152movupd %xmm0, (%rax) 153movupd (%rax), %xmm2 154 155mulpd %xmm0, %xmm2 156mulpd (%rax), %xmm2 157 158mulsd %xmm0, %xmm2 159mulsd (%rax), %xmm2 160 161orpd %xmm0, %xmm2 162orpd (%rax), %xmm2 163 164packssdw %xmm0, %xmm2 165packssdw (%rax), %xmm2 166 167packsswb %xmm0, %xmm2 168packsswb (%rax), %xmm2 169 170packuswb %xmm0, %xmm2 171packuswb (%rax), %xmm2 172 173paddb %xmm0, %xmm2 174paddb (%rax), %xmm2 175 176paddd %xmm0, %xmm2 177paddd (%rax), %xmm2 178 179paddq %mm0, %mm2 180paddq (%rax), %mm2 181 182paddq %xmm0, %xmm2 183paddq (%rax), %xmm2 184 185paddsb %xmm0, %xmm2 186paddsb (%rax), %xmm2 187 188paddsw %xmm0, %xmm2 189paddsw (%rax), %xmm2 190 191paddusb %xmm0, %xmm2 192paddusb (%rax), %xmm2 193 194paddusw %xmm0, %xmm2 195paddusw (%rax), %xmm2 196 197paddw %xmm0, %xmm2 198paddw (%rax), %xmm2 199 200pand %xmm0, %xmm2 201pand (%rax), %xmm2 202 203pandn %xmm0, %xmm2 204pandn (%rax), %xmm2 205 206pavgb %xmm0, %xmm2 207pavgb (%rax), %xmm2 208 209pavgw %xmm0, %xmm2 210pavgw (%rax), %xmm2 211 212pcmpeqb %xmm0, %xmm2 213pcmpeqb (%rax), %xmm2 214 215pcmpeqd %xmm0, %xmm2 216pcmpeqd (%rax), %xmm2 217 218pcmpeqw %xmm0, %xmm2 219pcmpeqw (%rax), %xmm2 220 221pcmpgtb %xmm0, %xmm2 222pcmpgtb (%rax), %xmm2 223 224pcmpgtd %xmm0, %xmm2 225pcmpgtd (%rax), %xmm2 226 227pcmpgtw %xmm0, %xmm2 228pcmpgtw (%rax), %xmm2 229 230pextrw $1, %xmm0, %rcx 231 232pmaddwd %xmm0, %xmm2 233pmaddwd (%rax), %xmm2 234 235pmaxsw %xmm0, %xmm2 236pmaxsw (%rax), %xmm2 237 238pmaxub %xmm0, %xmm2 239pmaxub (%rax), %xmm2 240 241pminsw %xmm0, %xmm2 242pminsw (%rax), %xmm2 243 244pminub %xmm0, %xmm2 245pminub (%rax), %xmm2 246 247pmovmskb %xmm0, %rcx 248 249pmulhuw %xmm0, %xmm2 250pmulhuw (%rax), %xmm2 251 252pmulhw %xmm0, %xmm2 253pmulhw (%rax), %xmm2 254 255pmullw %xmm0, %xmm2 256pmullw (%rax), %xmm2 257 258pmuludq %mm0, %mm2 259pmuludq (%rax), %mm2 260 261pmuludq %xmm0, %xmm2 262pmuludq (%rax), %xmm2 263 264por %xmm0, %xmm2 265por (%rax), %xmm2 266 267psadbw %xmm0, %xmm2 268psadbw (%rax), %xmm2 269 270pshufd $1, %xmm0, %xmm2 271pshufd $1, (%rax), %xmm2 272 273pshufhw $1, %xmm0, %xmm2 274pshufhw $1, (%rax), %xmm2 275 276pshuflw $1, %xmm0, %xmm2 277pshuflw $1, (%rax), %xmm2 278 279pslld $1, %xmm2 280pslld %xmm0, %xmm2 281pslld (%rax), %xmm2 282 283pslldq $1, %xmm2 284 285psllq $1, %xmm2 286psllq %xmm0, %xmm2 287psllq (%rax), %xmm2 288 289psllw $1, %xmm2 290psllw %xmm0, %xmm2 291psllw (%rax), %xmm2 292 293psrad $1, %xmm2 294psrad %xmm0, %xmm2 295psrad (%rax), %xmm2 296 297psraw $1, %xmm2 298psraw %xmm0, %xmm2 299psraw (%rax), %xmm2 300 301psrld $1, %xmm2 302psrld %xmm0, %xmm2 303psrld (%rax), %xmm2 304 305psrldq $1, %xmm2 306 307psrlq $1, %xmm2 308psrlq %xmm0, %xmm2 309psrlq (%rax), %xmm2 310 311psrlw $1, %xmm2 312psrlw %xmm0, %xmm2 313psrlw (%rax), %xmm2 314 315psubb %xmm0, %xmm2 316psubb (%rax), %xmm2 317 318psubd %xmm0, %xmm2 319psubd (%rax), %xmm2 320 321psubq %mm0, %mm2 322psubq (%rax), %mm2 323 324psubq %xmm0, %xmm2 325psubq (%rax), %xmm2 326 327psubsb %xmm0, %xmm2 328psubsb (%rax), %xmm2 329 330psubsw %xmm0, %xmm2 331psubsw (%rax), %xmm2 332 333psubusb %xmm0, %xmm2 334psubusb (%rax), %xmm2 335 336psubusw %xmm0, %xmm2 337psubusw (%rax), %xmm2 338 339psubw %xmm0, %xmm2 340psubw (%rax), %xmm2 341 342punpckhbw %xmm0, %xmm2 343punpckhbw (%rax), %xmm2 344 345punpckhdq %xmm0, %xmm2 346punpckhdq (%rax), %xmm2 347 348punpckhqdq %xmm0, %xmm2 349punpckhqdq (%rax), %xmm2 350 351punpckhwd %xmm0, %xmm2 352punpckhwd (%rax), %xmm2 353 354punpcklbw %xmm0, %xmm2 355punpcklbw (%rax), %xmm2 356 357punpckldq %xmm0, %xmm2 358punpckldq (%rax), %xmm2 359 360punpcklqdq %xmm0, %xmm2 361punpcklqdq (%rax), %xmm2 362 363punpcklwd %xmm0, %xmm2 364punpcklwd (%rax), %xmm2 365 366pxor %xmm0, %xmm2 367pxor (%rax), %xmm2 368 369shufpd $1, %xmm0, %xmm2 370shufpd $1, (%rax), %xmm2 371 372sqrtpd %xmm0, %xmm2 373sqrtpd (%rax), %xmm2 374 375sqrtsd %xmm0, %xmm2 376sqrtsd (%rax), %xmm2 377 378subpd %xmm0, %xmm2 379subpd (%rax), %xmm2 380 381subsd %xmm0, %xmm2 382subsd (%rax), %xmm2 383 384ucomisd %xmm0, %xmm1 385ucomisd (%rax), %xmm1 386 387unpckhpd %xmm0, %xmm2 388unpckhpd (%rax), %xmm2 389 390unpcklpd %xmm0, %xmm2 391unpcklpd (%rax), %xmm2 392 393xorpd %xmm0, %xmm2 394xorpd (%rax), %xmm2 395 396# CHECK: Instruction Info: 397# CHECK-NEXT: [1]: #uOps 398# CHECK-NEXT: [2]: Latency 399# CHECK-NEXT: [3]: RThroughput 400# CHECK-NEXT: [4]: MayLoad 401# CHECK-NEXT: [5]: MayStore 402# CHECK-NEXT: [6]: HasSideEffects (U) 403 404# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 405# CHECK-NEXT: 1 4 0.50 addpd %xmm0, %xmm2 406# CHECK-NEXT: 2 10 0.50 * addpd (%rax), %xmm2 407# CHECK-NEXT: 1 4 0.50 addsd %xmm0, %xmm2 408# CHECK-NEXT: 2 9 0.50 * addsd (%rax), %xmm2 409# CHECK-NEXT: 1 1 0.33 andnpd %xmm0, %xmm2 410# CHECK-NEXT: 2 7 0.50 * andnpd (%rax), %xmm2 411# CHECK-NEXT: 1 1 0.33 andpd %xmm0, %xmm2 412# CHECK-NEXT: 2 7 0.50 * andpd (%rax), %xmm2 413# CHECK-NEXT: 2 2 1.00 * * U clflush (%rax) 414# CHECK-NEXT: 1 4 0.50 cmppd $0, %xmm0, %xmm2 415# CHECK-NEXT: 2 10 0.50 * cmppd $0, (%rax), %xmm2 416# CHECK-NEXT: 1 4 0.50 cmpsd $0, %xmm0, %xmm2 417# CHECK-NEXT: 2 9 0.50 * cmpsd $0, (%rax), %xmm2 418# CHECK-NEXT: 1 2 1.00 comisd %xmm0, %xmm1 419# CHECK-NEXT: 2 7 1.00 * comisd (%rax), %xmm1 420# CHECK-NEXT: 1 4 0.50 cvtdq2pd %xmm0, %xmm2 421# CHECK-NEXT: 3 11 1.00 * cvtdq2pd (%rax), %xmm2 422# CHECK-NEXT: 1 4 0.50 cvtdq2ps %xmm0, %xmm2 423# CHECK-NEXT: 2 10 0.50 * cvtdq2ps (%rax), %xmm2 424# CHECK-NEXT: 2 5 1.00 cvtpd2dq %xmm0, %xmm2 425# CHECK-NEXT: 3 11 1.00 * cvtpd2dq (%rax), %xmm2 426# CHECK-NEXT: 2 5 1.00 cvtpd2pi %xmm0, %mm2 427# CHECK-NEXT: 3 11 1.00 * cvtpd2pi (%rax), %mm2 428# CHECK-NEXT: 2 5 1.00 cvtpd2ps %xmm0, %xmm2 429# CHECK-NEXT: 3 11 1.00 * cvtpd2ps (%rax), %xmm2 430# CHECK-NEXT: 1 4 0.50 cvtpi2pd %mm0, %xmm2 431# CHECK-NEXT: 2 9 0.50 * cvtpi2pd (%rax), %xmm2 432# CHECK-NEXT: 1 4 0.50 cvtps2dq %xmm0, %xmm2 433# CHECK-NEXT: 2 10 0.50 * cvtps2dq (%rax), %xmm2 434# CHECK-NEXT: 2 5 1.00 cvtps2pd %xmm0, %xmm2 435# CHECK-NEXT: 2 9 0.50 * cvtps2pd (%rax), %xmm2 436# CHECK-NEXT: 2 6 1.00 cvtsd2si %xmm0, %ecx 437# CHECK-NEXT: 2 6 1.00 cvtsd2si %xmm0, %rcx 438# CHECK-NEXT: 3 11 1.00 * cvtsd2si (%rax), %ecx 439# CHECK-NEXT: 3 11 1.00 * cvtsd2si (%rax), %rcx 440# CHECK-NEXT: 2 5 1.00 cvtsd2ss %xmm0, %xmm2 441# CHECK-NEXT: 3 10 1.00 * cvtsd2ss (%rax), %xmm2 442# CHECK-NEXT: 2 5 1.00 cvtsi2sdl %ecx, %xmm2 443# CHECK-NEXT: 2 5 1.00 cvtsi2sdq %rcx, %xmm2 444# CHECK-NEXT: 2 9 1.00 * cvtsi2sdl (%rax), %xmm2 445# CHECK-NEXT: 2 9 1.00 * cvtsi2sdl (%rax), %xmm2 446# CHECK-NEXT: 2 5 1.00 cvtss2sd %xmm0, %xmm2 447# CHECK-NEXT: 2 10 0.50 * cvtss2sd (%rax), %xmm2 448# CHECK-NEXT: 2 5 1.00 cvttpd2dq %xmm0, %xmm2 449# CHECK-NEXT: 3 11 1.00 * cvttpd2dq (%rax), %xmm2 450# CHECK-NEXT: 2 5 1.00 cvttpd2pi %xmm0, %mm2 451# CHECK-NEXT: 3 11 1.00 * cvttpd2pi (%rax), %mm2 452# CHECK-NEXT: 1 4 0.50 cvttps2dq %xmm0, %xmm2 453# CHECK-NEXT: 2 10 0.50 * cvttps2dq (%rax), %xmm2 454# CHECK-NEXT: 2 6 1.00 cvttsd2si %xmm0, %ecx 455# CHECK-NEXT: 2 6 1.00 cvttsd2si %xmm0, %rcx 456# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %ecx 457# CHECK-NEXT: 3 11 1.00 * cvttsd2si (%rax), %rcx 458# CHECK-NEXT: 1 14 3.00 divpd %xmm0, %xmm2 459# CHECK-NEXT: 2 20 4.00 * divpd (%rax), %xmm2 460# CHECK-NEXT: 1 14 3.00 divsd %xmm0, %xmm2 461# CHECK-NEXT: 2 19 4.00 * divsd (%rax), %xmm2 462# CHECK-NEXT: 2 2 0.50 * * U lfence 463# CHECK-NEXT: 2 1 1.00 * * U maskmovdqu %xmm0, %xmm1 464# CHECK-NEXT: 1 4 0.50 maxpd %xmm0, %xmm2 465# CHECK-NEXT: 2 10 0.50 * maxpd (%rax), %xmm2 466# CHECK-NEXT: 1 4 0.50 maxsd %xmm0, %xmm2 467# CHECK-NEXT: 2 9 0.50 * maxsd (%rax), %xmm2 468# CHECK-NEXT: 1 4 0.50 minpd %xmm0, %xmm2 469# CHECK-NEXT: 2 10 0.50 * minpd (%rax), %xmm2 470# CHECK-NEXT: 1 4 0.50 minsd %xmm0, %xmm2 471# CHECK-NEXT: 2 9 0.50 * minsd (%rax), %xmm2 472# CHECK-NEXT: 1 1 0.33 movapd %xmm0, %xmm2 473# CHECK-NEXT: 2 1 1.00 * movapd %xmm0, (%rax) 474# CHECK-NEXT: 1 6 0.50 * movapd (%rax), %xmm2 475# CHECK-NEXT: 1 1 1.00 movd %eax, %xmm2 476# CHECK-NEXT: 1 5 0.50 * movd (%rax), %xmm2 477# CHECK-NEXT: 1 2 1.00 movd %xmm0, %ecx 478# CHECK-NEXT: 2 1 1.00 * movd %xmm0, (%rax) 479# CHECK-NEXT: 1 1 0.33 movdqa %xmm0, %xmm2 480# CHECK-NEXT: 2 1 1.00 * movdqa %xmm0, (%rax) 481# CHECK-NEXT: 1 6 0.50 * movdqa (%rax), %xmm2 482# CHECK-NEXT: 1 1 0.33 movdqu %xmm0, %xmm2 483# CHECK-NEXT: 2 1 1.00 * movdqu %xmm0, (%rax) 484# CHECK-NEXT: 1 6 0.50 * movdqu (%rax), %xmm2 485# CHECK-NEXT: 2 2 1.00 movdq2q %xmm0, %mm2 486# CHECK-NEXT: 2 1 1.00 * movhpd %xmm0, (%rax) 487# CHECK-NEXT: 2 6 1.00 * movhpd (%rax), %xmm2 488# CHECK-NEXT: 2 1 1.00 * movlpd %xmm0, (%rax) 489# CHECK-NEXT: 2 6 1.00 * movlpd (%rax), %xmm2 490# CHECK-NEXT: 1 2 1.00 movmskpd %xmm0, %ecx 491# CHECK-NEXT: 2 1 1.00 * movntil %eax, (%rax) 492# CHECK-NEXT: 2 1 1.00 * movntiq %rax, (%rax) 493# CHECK-NEXT: 2 1 1.00 * movntdq %xmm0, (%rax) 494# CHECK-NEXT: 2 1 1.00 * movntpd %xmm0, (%rax) 495# CHECK-NEXT: 1 1 0.33 movq %xmm0, %xmm2 496# CHECK-NEXT: 1 1 1.00 movq %rax, %xmm2 497# CHECK-NEXT: 1 5 0.50 * movq (%rax), %xmm2 498# CHECK-NEXT: 1 2 1.00 movq %xmm0, %rcx 499# CHECK-NEXT: 2 1 1.00 * movq %xmm0, (%rax) 500# CHECK-NEXT: 2 2 2.00 movq2dq %mm0, %xmm2 501# CHECK-NEXT: 1 1 1.00 movsd %xmm0, %xmm2 502# CHECK-NEXT: 2 1 1.00 * movsd %xmm0, (%rax) 503# CHECK-NEXT: 1 5 0.50 * movsd (%rax), %xmm2 504# CHECK-NEXT: 1 1 0.33 movupd %xmm0, %xmm2 505# CHECK-NEXT: 2 1 1.00 * movupd %xmm0, (%rax) 506# CHECK-NEXT: 1 6 0.50 * movupd (%rax), %xmm2 507# CHECK-NEXT: 1 4 0.50 mulpd %xmm0, %xmm2 508# CHECK-NEXT: 2 10 0.50 * mulpd (%rax), %xmm2 509# CHECK-NEXT: 1 4 0.50 mulsd %xmm0, %xmm2 510# CHECK-NEXT: 2 9 0.50 * mulsd (%rax), %xmm2 511# CHECK-NEXT: 1 1 0.33 orpd %xmm0, %xmm2 512# CHECK-NEXT: 2 7 0.50 * orpd (%rax), %xmm2 513# CHECK-NEXT: 1 1 1.00 packssdw %xmm0, %xmm2 514# CHECK-NEXT: 2 7 1.00 * packssdw (%rax), %xmm2 515# CHECK-NEXT: 1 1 1.00 packsswb %xmm0, %xmm2 516# CHECK-NEXT: 2 7 1.00 * packsswb (%rax), %xmm2 517# CHECK-NEXT: 1 1 1.00 packuswb %xmm0, %xmm2 518# CHECK-NEXT: 2 7 1.00 * packuswb (%rax), %xmm2 519# CHECK-NEXT: 1 1 0.33 paddb %xmm0, %xmm2 520# CHECK-NEXT: 2 7 0.50 * paddb (%rax), %xmm2 521# CHECK-NEXT: 1 1 0.33 paddd %xmm0, %xmm2 522# CHECK-NEXT: 2 7 0.50 * paddd (%rax), %xmm2 523# CHECK-NEXT: 1 1 0.50 paddq %mm0, %mm2 524# CHECK-NEXT: 2 6 0.50 * paddq (%rax), %mm2 525# CHECK-NEXT: 1 1 0.33 paddq %xmm0, %xmm2 526# CHECK-NEXT: 2 7 0.50 * paddq (%rax), %xmm2 527# CHECK-NEXT: 1 1 0.50 paddsb %xmm0, %xmm2 528# CHECK-NEXT: 2 7 0.50 * paddsb (%rax), %xmm2 529# CHECK-NEXT: 1 1 0.50 paddsw %xmm0, %xmm2 530# CHECK-NEXT: 2 7 0.50 * paddsw (%rax), %xmm2 531# CHECK-NEXT: 1 1 0.50 paddusb %xmm0, %xmm2 532# CHECK-NEXT: 2 7 0.50 * paddusb (%rax), %xmm2 533# CHECK-NEXT: 1 1 0.50 paddusw %xmm0, %xmm2 534# CHECK-NEXT: 2 7 0.50 * paddusw (%rax), %xmm2 535# CHECK-NEXT: 1 1 0.33 paddw %xmm0, %xmm2 536# CHECK-NEXT: 2 7 0.50 * paddw (%rax), %xmm2 537# CHECK-NEXT: 1 1 0.33 pand %xmm0, %xmm2 538# CHECK-NEXT: 2 7 0.50 * pand (%rax), %xmm2 539# CHECK-NEXT: 1 1 0.33 pandn %xmm0, %xmm2 540# CHECK-NEXT: 2 7 0.50 * pandn (%rax), %xmm2 541# CHECK-NEXT: 1 1 0.50 pavgb %xmm0, %xmm2 542# CHECK-NEXT: 2 7 0.50 * pavgb (%rax), %xmm2 543# CHECK-NEXT: 1 1 0.50 pavgw %xmm0, %xmm2 544# CHECK-NEXT: 2 7 0.50 * pavgw (%rax), %xmm2 545# CHECK-NEXT: 1 1 0.50 pcmpeqb %xmm0, %xmm2 546# CHECK-NEXT: 2 7 0.50 * pcmpeqb (%rax), %xmm2 547# CHECK-NEXT: 1 1 0.50 pcmpeqd %xmm0, %xmm2 548# CHECK-NEXT: 2 7 0.50 * pcmpeqd (%rax), %xmm2 549# CHECK-NEXT: 1 1 0.50 pcmpeqw %xmm0, %xmm2 550# CHECK-NEXT: 2 7 0.50 * pcmpeqw (%rax), %xmm2 551# CHECK-NEXT: 1 1 0.50 pcmpgtb %xmm0, %xmm2 552# CHECK-NEXT: 2 7 0.50 * pcmpgtb (%rax), %xmm2 553# CHECK-NEXT: 1 1 0.50 pcmpgtd %xmm0, %xmm2 554# CHECK-NEXT: 2 7 0.50 * pcmpgtd (%rax), %xmm2 555# CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 556# CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 557# CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx 558# CHECK-NEXT: 1 4 0.50 pmaddwd %xmm0, %xmm2 559# CHECK-NEXT: 2 10 0.50 * pmaddwd (%rax), %xmm2 560# CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 561# CHECK-NEXT: 2 7 0.50 * pmaxsw (%rax), %xmm2 562# CHECK-NEXT: 1 1 0.50 pmaxub %xmm0, %xmm2 563# CHECK-NEXT: 2 7 0.50 * pmaxub (%rax), %xmm2 564# CHECK-NEXT: 1 1 0.50 pminsw %xmm0, %xmm2 565# CHECK-NEXT: 2 7 0.50 * pminsw (%rax), %xmm2 566# CHECK-NEXT: 1 1 0.50 pminub %xmm0, %xmm2 567# CHECK-NEXT: 2 7 0.50 * pminub (%rax), %xmm2 568# CHECK-NEXT: 1 2 1.00 pmovmskb %xmm0, %ecx 569# CHECK-NEXT: 1 4 0.50 pmulhuw %xmm0, %xmm2 570# CHECK-NEXT: 2 10 0.50 * pmulhuw (%rax), %xmm2 571# CHECK-NEXT: 1 4 0.50 pmulhw %xmm0, %xmm2 572# CHECK-NEXT: 2 10 0.50 * pmulhw (%rax), %xmm2 573# CHECK-NEXT: 1 4 0.50 pmullw %xmm0, %xmm2 574# CHECK-NEXT: 2 10 0.50 * pmullw (%rax), %xmm2 575# CHECK-NEXT: 1 4 1.00 pmuludq %mm0, %mm2 576# CHECK-NEXT: 2 9 1.00 * pmuludq (%rax), %mm2 577# CHECK-NEXT: 1 4 0.50 pmuludq %xmm0, %xmm2 578# CHECK-NEXT: 2 10 0.50 * pmuludq (%rax), %xmm2 579# CHECK-NEXT: 1 1 0.33 por %xmm0, %xmm2 580# CHECK-NEXT: 2 7 0.50 * por (%rax), %xmm2 581# CHECK-NEXT: 1 3 1.00 psadbw %xmm0, %xmm2 582# CHECK-NEXT: 2 9 1.00 * psadbw (%rax), %xmm2 583# CHECK-NEXT: 1 1 1.00 pshufd $1, %xmm0, %xmm2 584# CHECK-NEXT: 2 7 1.00 * pshufd $1, (%rax), %xmm2 585# CHECK-NEXT: 1 1 1.00 pshufhw $1, %xmm0, %xmm2 586# CHECK-NEXT: 2 7 1.00 * pshufhw $1, (%rax), %xmm2 587# CHECK-NEXT: 1 1 1.00 pshuflw $1, %xmm0, %xmm2 588# CHECK-NEXT: 2 7 1.00 * pshuflw $1, (%rax), %xmm2 589# CHECK-NEXT: 1 1 0.50 pslld $1, %xmm2 590# CHECK-NEXT: 2 2 1.00 pslld %xmm0, %xmm2 591# CHECK-NEXT: 2 7 0.50 * pslld (%rax), %xmm2 592# CHECK-NEXT: 1 1 1.00 pslldq $1, %xmm2 593# CHECK-NEXT: 1 1 0.50 psllq $1, %xmm2 594# CHECK-NEXT: 2 2 1.00 psllq %xmm0, %xmm2 595# CHECK-NEXT: 2 7 0.50 * psllq (%rax), %xmm2 596# CHECK-NEXT: 1 1 0.50 psllw $1, %xmm2 597# CHECK-NEXT: 2 2 1.00 psllw %xmm0, %xmm2 598# CHECK-NEXT: 2 7 0.50 * psllw (%rax), %xmm2 599# CHECK-NEXT: 1 1 0.50 psrad $1, %xmm2 600# CHECK-NEXT: 2 2 1.00 psrad %xmm0, %xmm2 601# CHECK-NEXT: 2 7 0.50 * psrad (%rax), %xmm2 602# CHECK-NEXT: 1 1 0.50 psraw $1, %xmm2 603# CHECK-NEXT: 2 2 1.00 psraw %xmm0, %xmm2 604# CHECK-NEXT: 2 7 0.50 * psraw (%rax), %xmm2 605# CHECK-NEXT: 1 1 0.50 psrld $1, %xmm2 606# CHECK-NEXT: 2 2 1.00 psrld %xmm0, %xmm2 607# CHECK-NEXT: 2 7 0.50 * psrld (%rax), %xmm2 608# CHECK-NEXT: 1 1 1.00 psrldq $1, %xmm2 609# CHECK-NEXT: 1 1 0.50 psrlq $1, %xmm2 610# CHECK-NEXT: 2 2 1.00 psrlq %xmm0, %xmm2 611# CHECK-NEXT: 2 7 0.50 * psrlq (%rax), %xmm2 612# CHECK-NEXT: 1 1 0.50 psrlw $1, %xmm2 613# CHECK-NEXT: 2 2 1.00 psrlw %xmm0, %xmm2 614# CHECK-NEXT: 2 7 0.50 * psrlw (%rax), %xmm2 615# CHECK-NEXT: 1 1 0.33 psubb %xmm0, %xmm2 616# CHECK-NEXT: 2 7 0.50 * psubb (%rax), %xmm2 617# CHECK-NEXT: 1 1 0.33 psubd %xmm0, %xmm2 618# CHECK-NEXT: 2 7 0.50 * psubd (%rax), %xmm2 619# CHECK-NEXT: 1 1 0.50 psubq %mm0, %mm2 620# CHECK-NEXT: 2 6 0.50 * psubq (%rax), %mm2 621# CHECK-NEXT: 1 1 0.33 psubq %xmm0, %xmm2 622# CHECK-NEXT: 2 7 0.50 * psubq (%rax), %xmm2 623# CHECK-NEXT: 1 1 0.50 psubsb %xmm0, %xmm2 624# CHECK-NEXT: 2 7 0.50 * psubsb (%rax), %xmm2 625# CHECK-NEXT: 1 1 0.50 psubsw %xmm0, %xmm2 626# CHECK-NEXT: 2 7 0.50 * psubsw (%rax), %xmm2 627# CHECK-NEXT: 1 1 0.50 psubusb %xmm0, %xmm2 628# CHECK-NEXT: 2 7 0.50 * psubusb (%rax), %xmm2 629# CHECK-NEXT: 1 1 0.50 psubusw %xmm0, %xmm2 630# CHECK-NEXT: 2 7 0.50 * psubusw (%rax), %xmm2 631# CHECK-NEXT: 1 1 0.33 psubw %xmm0, %xmm2 632# CHECK-NEXT: 2 7 0.50 * psubw (%rax), %xmm2 633# CHECK-NEXT: 1 1 1.00 punpckhbw %xmm0, %xmm2 634# CHECK-NEXT: 2 7 1.00 * punpckhbw (%rax), %xmm2 635# CHECK-NEXT: 1 1 1.00 punpckhdq %xmm0, %xmm2 636# CHECK-NEXT: 2 7 1.00 * punpckhdq (%rax), %xmm2 637# CHECK-NEXT: 1 1 1.00 punpckhqdq %xmm0, %xmm2 638# CHECK-NEXT: 2 7 1.00 * punpckhqdq (%rax), %xmm2 639# CHECK-NEXT: 1 1 1.00 punpckhwd %xmm0, %xmm2 640# CHECK-NEXT: 2 7 1.00 * punpckhwd (%rax), %xmm2 641# CHECK-NEXT: 1 1 1.00 punpcklbw %xmm0, %xmm2 642# CHECK-NEXT: 2 7 1.00 * punpcklbw (%rax), %xmm2 643# CHECK-NEXT: 1 1 1.00 punpckldq %xmm0, %xmm2 644# CHECK-NEXT: 2 7 1.00 * punpckldq (%rax), %xmm2 645# CHECK-NEXT: 1 1 1.00 punpcklqdq %xmm0, %xmm2 646# CHECK-NEXT: 2 7 1.00 * punpcklqdq (%rax), %xmm2 647# CHECK-NEXT: 1 1 1.00 punpcklwd %xmm0, %xmm2 648# CHECK-NEXT: 2 7 1.00 * punpcklwd (%rax), %xmm2 649# CHECK-NEXT: 1 1 0.33 pxor %xmm0, %xmm2 650# CHECK-NEXT: 2 7 0.50 * pxor (%rax), %xmm2 651# CHECK-NEXT: 1 1 1.00 shufpd $1, %xmm0, %xmm2 652# CHECK-NEXT: 2 7 1.00 * shufpd $1, (%rax), %xmm2 653# CHECK-NEXT: 1 18 6.00 sqrtpd %xmm0, %xmm2 654# CHECK-NEXT: 2 24 6.00 * sqrtpd (%rax), %xmm2 655# CHECK-NEXT: 1 18 6.00 sqrtsd %xmm0, %xmm2 656# CHECK-NEXT: 2 23 6.00 * sqrtsd (%rax), %xmm2 657# CHECK-NEXT: 1 4 0.50 subpd %xmm0, %xmm2 658# CHECK-NEXT: 2 10 0.50 * subpd (%rax), %xmm2 659# CHECK-NEXT: 1 4 0.50 subsd %xmm0, %xmm2 660# CHECK-NEXT: 2 9 0.50 * subsd (%rax), %xmm2 661# CHECK-NEXT: 1 2 1.00 ucomisd %xmm0, %xmm1 662# CHECK-NEXT: 2 7 1.00 * ucomisd (%rax), %xmm1 663# CHECK-NEXT: 1 1 1.00 unpckhpd %xmm0, %xmm2 664# CHECK-NEXT: 2 7 1.00 * unpckhpd (%rax), %xmm2 665# CHECK-NEXT: 1 1 1.00 unpcklpd %xmm0, %xmm2 666# CHECK-NEXT: 2 7 1.00 * unpcklpd (%rax), %xmm2 667# CHECK-NEXT: 1 1 0.33 xorpd %xmm0, %xmm2 668# CHECK-NEXT: 2 7 0.50 * xorpd (%rax), %xmm2 669 670# CHECK: Resources: 671# CHECK-NEXT: [0] - SKXDivider 672# CHECK-NEXT: [1] - SKXFPDivider 673# CHECK-NEXT: [2] - SKXPort0 674# CHECK-NEXT: [3] - SKXPort1 675# CHECK-NEXT: [4] - SKXPort2 676# CHECK-NEXT: [5] - SKXPort3 677# CHECK-NEXT: [6] - SKXPort4 678# CHECK-NEXT: [7] - SKXPort5 679# CHECK-NEXT: [8] - SKXPort6 680# CHECK-NEXT: [9] - SKXPort7 681 682# CHECK: Resource pressure per iteration: 683# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] 684# CHECK-NEXT: - 38.00 103.08 82.08 62.67 62.67 14.00 94.08 1.75 4.67 685 686# CHECK: Resource pressure by instruction: 687# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: 688# CHECK-NEXT: - - 0.50 0.50 - - - - - - addpd %xmm0, %xmm2 689# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - addpd (%rax), %xmm2 690# CHECK-NEXT: - - 0.50 0.50 - - - - - - addsd %xmm0, %xmm2 691# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - addsd (%rax), %xmm2 692# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - andnpd %xmm0, %xmm2 693# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - andnpd (%rax), %xmm2 694# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - andpd %xmm0, %xmm2 695# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - andpd (%rax), %xmm2 696# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 1.25 - clflush (%rax) 697# CHECK-NEXT: - - 0.50 0.50 - - - - - - cmppd $0, %xmm0, %xmm2 698# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - cmppd $0, (%rax), %xmm2 699# CHECK-NEXT: - - 0.50 0.50 - - - - - - cmpsd $0, %xmm0, %xmm2 700# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - cmpsd $0, (%rax), %xmm2 701# CHECK-NEXT: - - 1.00 - - - - - - - comisd %xmm0, %xmm1 702# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - comisd (%rax), %xmm1 703# CHECK-NEXT: - - 0.50 0.50 - - - - - - cvtdq2pd %xmm0, %xmm2 704# CHECK-NEXT: - - 1.00 - 0.50 0.50 - 1.00 - - cvtdq2pd (%rax), %xmm2 705# CHECK-NEXT: - - 0.50 0.50 - - - - - - cvtdq2ps %xmm0, %xmm2 706# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - cvtdq2ps (%rax), %xmm2 707# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtpd2dq %xmm0, %xmm2 708# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvtpd2dq (%rax), %xmm2 709# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtpd2pi %xmm0, %mm2 710# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvtpd2pi (%rax), %mm2 711# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtpd2ps %xmm0, %xmm2 712# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvtpd2ps (%rax), %xmm2 713# CHECK-NEXT: - - 0.50 0.50 - - - - - - cvtpi2pd %mm0, %xmm2 714# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - cvtpi2pd (%rax), %xmm2 715# CHECK-NEXT: - - 0.50 0.50 - - - - - - cvtps2dq %xmm0, %xmm2 716# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - cvtps2dq (%rax), %xmm2 717# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtps2pd %xmm0, %xmm2 718# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - cvtps2pd (%rax), %xmm2 719# CHECK-NEXT: - - 1.00 1.00 - - - - - - cvtsd2si %xmm0, %ecx 720# CHECK-NEXT: - - 1.00 1.00 - - - - - - cvtsd2si %xmm0, %rcx 721# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvtsd2si (%rax), %ecx 722# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvtsd2si (%rax), %rcx 723# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtsd2ss %xmm0, %xmm2 724# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvtsd2ss (%rax), %xmm2 725# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtsi2sdl %ecx, %xmm2 726# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtsi2sdq %rcx, %xmm2 727# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - cvtsi2sdl (%rax), %xmm2 728# CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - cvtsi2sdl (%rax), %xmm2 729# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvtss2sd %xmm0, %xmm2 730# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - cvtss2sd (%rax), %xmm2 731# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvttpd2dq %xmm0, %xmm2 732# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvttpd2dq (%rax), %xmm2 733# CHECK-NEXT: - - 0.33 0.33 - - - 1.33 - - cvttpd2pi %xmm0, %mm2 734# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 1.33 - - cvttpd2pi (%rax), %mm2 735# CHECK-NEXT: - - 0.50 0.50 - - - - - - cvttps2dq %xmm0, %xmm2 736# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - cvttps2dq (%rax), %xmm2 737# CHECK-NEXT: - - 1.00 1.00 - - - - - - cvttsd2si %xmm0, %ecx 738# CHECK-NEXT: - - 1.00 1.00 - - - - - - cvttsd2si %xmm0, %rcx 739# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvttsd2si (%rax), %ecx 740# CHECK-NEXT: - - 1.00 1.00 0.50 0.50 - - - - cvttsd2si (%rax), %rcx 741# CHECK-NEXT: - 3.00 1.00 - - - - - - - divpd %xmm0, %xmm2 742# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divpd (%rax), %xmm2 743# CHECK-NEXT: - 3.00 1.00 - - - - - - - divsd %xmm0, %xmm2 744# CHECK-NEXT: - 4.00 1.00 - 0.50 0.50 - - - - divsd (%rax), %xmm2 745# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - lfence 746# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 maskmovdqu %xmm0, %xmm1 747# CHECK-NEXT: - - 0.50 0.50 - - - - - - maxpd %xmm0, %xmm2 748# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxpd (%rax), %xmm2 749# CHECK-NEXT: - - 0.50 0.50 - - - - - - maxsd %xmm0, %xmm2 750# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxsd (%rax), %xmm2 751# CHECK-NEXT: - - 0.50 0.50 - - - - - - minpd %xmm0, %xmm2 752# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - minpd (%rax), %xmm2 753# CHECK-NEXT: - - 0.50 0.50 - - - - - - minsd %xmm0, %xmm2 754# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - minsd (%rax), %xmm2 755# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movapd %xmm0, %xmm2 756# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movapd %xmm0, (%rax) 757# CHECK-NEXT: - - - - 0.50 0.50 - - - - movapd (%rax), %xmm2 758# CHECK-NEXT: - - - - - - - 1.00 - - movd %eax, %xmm2 759# CHECK-NEXT: - - - - 0.50 0.50 - - - - movd (%rax), %xmm2 760# CHECK-NEXT: - - 1.00 - - - - - - - movd %xmm0, %ecx 761# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movd %xmm0, (%rax) 762# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movdqa %xmm0, %xmm2 763# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movdqa %xmm0, (%rax) 764# CHECK-NEXT: - - - - 0.50 0.50 - - - - movdqa (%rax), %xmm2 765# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movdqu %xmm0, %xmm2 766# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movdqu %xmm0, (%rax) 767# CHECK-NEXT: - - - - 0.50 0.50 - - - - movdqu (%rax), %xmm2 768# CHECK-NEXT: - - 1.00 - - - - 1.00 - - movdq2q %xmm0, %mm2 769# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movhpd %xmm0, (%rax) 770# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - movhpd (%rax), %xmm2 771# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movlpd %xmm0, (%rax) 772# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - movlpd (%rax), %xmm2 773# CHECK-NEXT: - - 1.00 - - - - - - - movmskpd %xmm0, %ecx 774# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movntil %eax, (%rax) 775# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movntiq %rax, (%rax) 776# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movntdq %xmm0, (%rax) 777# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movntpd %xmm0, (%rax) 778# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movq %xmm0, %xmm2 779# CHECK-NEXT: - - - - - - - 1.00 - - movq %rax, %xmm2 780# CHECK-NEXT: - - - - 0.50 0.50 - - - - movq (%rax), %xmm2 781# CHECK-NEXT: - - 1.00 - - - - - - - movq %xmm0, %rcx 782# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movq %xmm0, (%rax) 783# CHECK-NEXT: - - - - - - - 2.00 - - movq2dq %mm0, %xmm2 784# CHECK-NEXT: - - - - - - - 1.00 - - movsd %xmm0, %xmm2 785# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movsd %xmm0, (%rax) 786# CHECK-NEXT: - - - - 0.50 0.50 - - - - movsd (%rax), %xmm2 787# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - movupd %xmm0, %xmm2 788# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 movupd %xmm0, (%rax) 789# CHECK-NEXT: - - - - 0.50 0.50 - - - - movupd (%rax), %xmm2 790# CHECK-NEXT: - - 0.50 0.50 - - - - - - mulpd %xmm0, %xmm2 791# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - mulpd (%rax), %xmm2 792# CHECK-NEXT: - - 0.50 0.50 - - - - - - mulsd %xmm0, %xmm2 793# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - mulsd (%rax), %xmm2 794# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - orpd %xmm0, %xmm2 795# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - orpd (%rax), %xmm2 796# CHECK-NEXT: - - - - - - - 1.00 - - packssdw %xmm0, %xmm2 797# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - packssdw (%rax), %xmm2 798# CHECK-NEXT: - - - - - - - 1.00 - - packsswb %xmm0, %xmm2 799# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - packsswb (%rax), %xmm2 800# CHECK-NEXT: - - - - - - - 1.00 - - packuswb %xmm0, %xmm2 801# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - packuswb (%rax), %xmm2 802# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - paddb %xmm0, %xmm2 803# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - paddb (%rax), %xmm2 804# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - paddd %xmm0, %xmm2 805# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - paddd (%rax), %xmm2 806# CHECK-NEXT: - - 0.50 - - - - 0.50 - - paddq %mm0, %mm2 807# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - paddq (%rax), %mm2 808# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - paddq %xmm0, %xmm2 809# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - paddq (%rax), %xmm2 810# CHECK-NEXT: - - 0.50 0.50 - - - - - - paddsb %xmm0, %xmm2 811# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - paddsb (%rax), %xmm2 812# CHECK-NEXT: - - 0.50 0.50 - - - - - - paddsw %xmm0, %xmm2 813# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - paddsw (%rax), %xmm2 814# CHECK-NEXT: - - 0.50 0.50 - - - - - - paddusb %xmm0, %xmm2 815# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - paddusb (%rax), %xmm2 816# CHECK-NEXT: - - 0.50 0.50 - - - - - - paddusw %xmm0, %xmm2 817# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - paddusw (%rax), %xmm2 818# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - paddw %xmm0, %xmm2 819# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - paddw (%rax), %xmm2 820# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - pand %xmm0, %xmm2 821# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - pand (%rax), %xmm2 822# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - pandn %xmm0, %xmm2 823# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - pandn (%rax), %xmm2 824# CHECK-NEXT: - - 0.50 0.50 - - - - - - pavgb %xmm0, %xmm2 825# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pavgb (%rax), %xmm2 826# CHECK-NEXT: - - 0.50 0.50 - - - - - - pavgw %xmm0, %xmm2 827# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pavgw (%rax), %xmm2 828# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpeqb %xmm0, %xmm2 829# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpeqb (%rax), %xmm2 830# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpeqd %xmm0, %xmm2 831# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpeqd (%rax), %xmm2 832# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpeqw %xmm0, %xmm2 833# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpeqw (%rax), %xmm2 834# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpgtb %xmm0, %xmm2 835# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpgtb (%rax), %xmm2 836# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpgtd %xmm0, %xmm2 837# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpgtd (%rax), %xmm2 838# CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpgtw %xmm0, %xmm2 839# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpgtw (%rax), %xmm2 840# CHECK-NEXT: - - 1.00 - - - - 1.00 - - pextrw $1, %xmm0, %ecx 841# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaddwd %xmm0, %xmm2 842# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmaddwd (%rax), %xmm2 843# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaxsw %xmm0, %xmm2 844# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmaxsw (%rax), %xmm2 845# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaxub %xmm0, %xmm2 846# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmaxub (%rax), %xmm2 847# CHECK-NEXT: - - 0.50 0.50 - - - - - - pminsw %xmm0, %xmm2 848# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pminsw (%rax), %xmm2 849# CHECK-NEXT: - - 0.50 0.50 - - - - - - pminub %xmm0, %xmm2 850# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pminub (%rax), %xmm2 851# CHECK-NEXT: - - 1.00 - - - - - - - pmovmskb %xmm0, %ecx 852# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmulhuw %xmm0, %xmm2 853# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmulhuw (%rax), %xmm2 854# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmulhw %xmm0, %xmm2 855# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmulhw (%rax), %xmm2 856# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmullw %xmm0, %xmm2 857# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmullw (%rax), %xmm2 858# CHECK-NEXT: - - 1.00 - - - - - - - pmuludq %mm0, %mm2 859# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pmuludq (%rax), %mm2 860# CHECK-NEXT: - - 0.50 0.50 - - - - - - pmuludq %xmm0, %xmm2 861# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmuludq (%rax), %xmm2 862# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - por %xmm0, %xmm2 863# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - por (%rax), %xmm2 864# CHECK-NEXT: - - - - - - - 1.00 - - psadbw %xmm0, %xmm2 865# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - psadbw (%rax), %xmm2 866# CHECK-NEXT: - - - - - - - 1.00 - - pshufd $1, %xmm0, %xmm2 867# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pshufd $1, (%rax), %xmm2 868# CHECK-NEXT: - - - - - - - 1.00 - - pshufhw $1, %xmm0, %xmm2 869# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pshufhw $1, (%rax), %xmm2 870# CHECK-NEXT: - - - - - - - 1.00 - - pshuflw $1, %xmm0, %xmm2 871# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pshuflw $1, (%rax), %xmm2 872# CHECK-NEXT: - - 0.50 0.50 - - - - - - pslld $1, %xmm2 873# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - pslld %xmm0, %xmm2 874# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pslld (%rax), %xmm2 875# CHECK-NEXT: - - - - - - - 1.00 - - pslldq $1, %xmm2 876# CHECK-NEXT: - - 0.50 0.50 - - - - - - psllq $1, %xmm2 877# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psllq %xmm0, %xmm2 878# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psllq (%rax), %xmm2 879# CHECK-NEXT: - - 0.50 0.50 - - - - - - psllw $1, %xmm2 880# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psllw %xmm0, %xmm2 881# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psllw (%rax), %xmm2 882# CHECK-NEXT: - - 0.50 0.50 - - - - - - psrad $1, %xmm2 883# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psrad %xmm0, %xmm2 884# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psrad (%rax), %xmm2 885# CHECK-NEXT: - - 0.50 0.50 - - - - - - psraw $1, %xmm2 886# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psraw %xmm0, %xmm2 887# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psraw (%rax), %xmm2 888# CHECK-NEXT: - - 0.50 0.50 - - - - - - psrld $1, %xmm2 889# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psrld %xmm0, %xmm2 890# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psrld (%rax), %xmm2 891# CHECK-NEXT: - - - - - - - 1.00 - - psrldq $1, %xmm2 892# CHECK-NEXT: - - 0.50 0.50 - - - - - - psrlq $1, %xmm2 893# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psrlq %xmm0, %xmm2 894# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psrlq (%rax), %xmm2 895# CHECK-NEXT: - - 0.50 0.50 - - - - - - psrlw $1, %xmm2 896# CHECK-NEXT: - - 0.50 0.50 - - - 1.00 - - psrlw %xmm0, %xmm2 897# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psrlw (%rax), %xmm2 898# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - psubb %xmm0, %xmm2 899# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - psubb (%rax), %xmm2 900# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - psubd %xmm0, %xmm2 901# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - psubd (%rax), %xmm2 902# CHECK-NEXT: - - 0.50 - - - - 0.50 - - psubq %mm0, %mm2 903# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - psubq (%rax), %mm2 904# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - psubq %xmm0, %xmm2 905# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - psubq (%rax), %xmm2 906# CHECK-NEXT: - - 0.50 0.50 - - - - - - psubsb %xmm0, %xmm2 907# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psubsb (%rax), %xmm2 908# CHECK-NEXT: - - 0.50 0.50 - - - - - - psubsw %xmm0, %xmm2 909# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psubsw (%rax), %xmm2 910# CHECK-NEXT: - - 0.50 0.50 - - - - - - psubusb %xmm0, %xmm2 911# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psubusb (%rax), %xmm2 912# CHECK-NEXT: - - 0.50 0.50 - - - - - - psubusw %xmm0, %xmm2 913# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - psubusw (%rax), %xmm2 914# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - psubw %xmm0, %xmm2 915# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - psubw (%rax), %xmm2 916# CHECK-NEXT: - - - - - - - 1.00 - - punpckhbw %xmm0, %xmm2 917# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpckhbw (%rax), %xmm2 918# CHECK-NEXT: - - - - - - - 1.00 - - punpckhdq %xmm0, %xmm2 919# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpckhdq (%rax), %xmm2 920# CHECK-NEXT: - - - - - - - 1.00 - - punpckhqdq %xmm0, %xmm2 921# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpckhqdq (%rax), %xmm2 922# CHECK-NEXT: - - - - - - - 1.00 - - punpckhwd %xmm0, %xmm2 923# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpckhwd (%rax), %xmm2 924# CHECK-NEXT: - - - - - - - 1.00 - - punpcklbw %xmm0, %xmm2 925# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklbw (%rax), %xmm2 926# CHECK-NEXT: - - - - - - - 1.00 - - punpckldq %xmm0, %xmm2 927# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpckldq (%rax), %xmm2 928# CHECK-NEXT: - - - - - - - 1.00 - - punpcklqdq %xmm0, %xmm2 929# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklqdq (%rax), %xmm2 930# CHECK-NEXT: - - - - - - - 1.00 - - punpcklwd %xmm0, %xmm2 931# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - punpcklwd (%rax), %xmm2 932# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - pxor %xmm0, %xmm2 933# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - pxor (%rax), %xmm2 934# CHECK-NEXT: - - - - - - - 1.00 - - shufpd $1, %xmm0, %xmm2 935# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - shufpd $1, (%rax), %xmm2 936# CHECK-NEXT: - 6.00 1.00 - - - - - - - sqrtpd %xmm0, %xmm2 937# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - sqrtpd (%rax), %xmm2 938# CHECK-NEXT: - 6.00 1.00 - - - - - - - sqrtsd %xmm0, %xmm2 939# CHECK-NEXT: - 6.00 1.00 - 0.50 0.50 - - - - sqrtsd (%rax), %xmm2 940# CHECK-NEXT: - - 0.50 0.50 - - - - - - subpd %xmm0, %xmm2 941# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - subpd (%rax), %xmm2 942# CHECK-NEXT: - - 0.50 0.50 - - - - - - subsd %xmm0, %xmm2 943# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - subsd (%rax), %xmm2 944# CHECK-NEXT: - - 1.00 - - - - - - - ucomisd %xmm0, %xmm1 945# CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - ucomisd (%rax), %xmm1 946# CHECK-NEXT: - - - - - - - 1.00 - - unpckhpd %xmm0, %xmm2 947# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpckhpd (%rax), %xmm2 948# CHECK-NEXT: - - - - - - - 1.00 - - unpcklpd %xmm0, %xmm2 949# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - unpcklpd (%rax), %xmm2 950# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - xorpd %xmm0, %xmm2 951# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - xorpd (%rax), %xmm2 952