1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s 3 4vfrczpd %xmm0, %xmm3 5vfrczpd (%rax), %xmm3 6 7vfrczpd %ymm0, %ymm3 8vfrczpd (%rax), %ymm3 9 10vfrczps %xmm0, %xmm3 11vfrczps (%rax), %xmm3 12 13vfrczps %ymm0, %ymm3 14vfrczps (%rax), %ymm3 15 16vfrczsd %xmm0, %xmm3 17vfrczsd (%rax), %xmm3 18 19vfrczss %xmm0, %xmm3 20vfrczss (%rax), %xmm3 21 22vpcmov %xmm0, %xmm1, %xmm2, %xmm3 23vpcmov (%rax), %xmm0, %xmm1, %xmm3 24vpcmov %xmm0, (%rax), %xmm1, %xmm3 25 26vpcmov %ymm0, %ymm1, %ymm2, %ymm3 27vpcmov (%rax), %ymm0, %ymm1, %ymm3 28vpcmov %ymm0, (%rax), %ymm1, %ymm3 29 30vpcomb $0, %xmm0, %xmm1, %xmm3 31vpcomb $0, (%rax), %xmm0, %xmm3 32 33vpcomd $0, %xmm0, %xmm1, %xmm3 34vpcomd $0, (%rax), %xmm0, %xmm3 35 36vpcomq $0, %xmm0, %xmm1, %xmm3 37vpcomq $0, (%rax), %xmm0, %xmm3 38 39vpcomub $0, %xmm0, %xmm1, %xmm3 40vpcomub $0, (%rax), %xmm0, %xmm3 41 42vpcomud $0, %xmm0, %xmm1, %xmm3 43vpcomud $0, (%rax), %xmm0, %xmm3 44 45vpcomuq $0, %xmm0, %xmm1, %xmm3 46vpcomuq $0, (%rax), %xmm0, %xmm3 47 48vpcomuw $0, %xmm0, %xmm1, %xmm3 49vpcomuw $0, (%rax), %xmm0, %xmm3 50 51vpcomw $0, %xmm0, %xmm1, %xmm3 52vpcomw $0, (%rax), %xmm0, %xmm3 53 54vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 55vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 56vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 57 58vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 59vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 60vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 61 62vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 63vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 64vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 65 66vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 67vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 68vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 69 70vphaddbd %xmm0, %xmm3 71vphaddbd (%rax), %xmm3 72 73vphaddbq %xmm0, %xmm3 74vphaddbq (%rax), %xmm3 75 76vphaddbw %xmm0, %xmm3 77vphaddbw (%rax), %xmm3 78 79vphadddq %xmm0, %xmm3 80vphadddq (%rax), %xmm3 81 82vphaddubd %xmm0, %xmm3 83vphaddubd (%rax), %xmm3 84 85vphaddubq %xmm0, %xmm3 86vphaddubq (%rax), %xmm3 87 88vphaddubw %xmm0, %xmm3 89vphaddubw (%rax), %xmm3 90 91vphaddudq %xmm0, %xmm3 92vphaddudq (%rax), %xmm3 93 94vphadduwd %xmm0, %xmm3 95vphadduwd (%rax), %xmm3 96 97vphadduwq %xmm0, %xmm3 98vphadduwq (%rax), %xmm3 99 100vphaddwd %xmm0, %xmm3 101vphaddwd (%rax), %xmm3 102 103vphaddwq %xmm0, %xmm3 104vphaddwq (%rax), %xmm3 105 106vphsubbw %xmm0, %xmm3 107vphsubbw (%rax), %xmm3 108 109vphsubdq %xmm0, %xmm3 110vphsubdq (%rax), %xmm3 111 112vphsubwd %xmm0, %xmm3 113vphsubwd (%rax), %xmm3 114 115vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 116vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 117 118vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 119vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 120 121vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 122vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 123 124vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 125vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 126 127vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 128vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 129 130vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 131vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 132 133vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 134vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 135 136vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 137vpmacssww %xmm0, (%rax), %xmm1, %xmm3 138 139vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 140vpmacswd %xmm0, (%rax), %xmm1, %xmm3 141 142vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 143vpmacsww %xmm0, (%rax), %xmm1, %xmm3 144 145vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 146vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 147 148vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 149vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 150 151vpperm %xmm0, %xmm1, %xmm2, %xmm3 152vpperm (%rax), %xmm0, %xmm1, %xmm3 153vpperm %xmm0, (%rax), %xmm1, %xmm3 154 155vprotb %xmm0, %xmm1, %xmm3 156vprotb (%rax), %xmm0, %xmm3 157vprotb %xmm0, (%rax), %xmm3 158 159vprotb $0, %xmm0, %xmm3 160vprotb $0, (%rax), %xmm3 161 162vprotd %xmm0, %xmm1, %xmm3 163vprotd (%rax), %xmm0, %xmm3 164vprotd %xmm0, (%rax), %xmm3 165 166vprotd $0, %xmm0, %xmm3 167vprotd $0, (%rax), %xmm3 168 169vprotq %xmm0, %xmm1, %xmm3 170vprotq (%rax), %xmm0, %xmm3 171vprotq %xmm0, (%rax), %xmm3 172 173vprotq $0, %xmm0, %xmm3 174vprotq $0, (%rax), %xmm3 175 176vprotw %xmm0, %xmm1, %xmm3 177vprotw (%rax), %xmm0, %xmm3 178vprotw %xmm0, (%rax), %xmm3 179 180vprotw $0, %xmm0, %xmm3 181vprotw $0, (%rax), %xmm3 182 183vpshab %xmm0, %xmm1, %xmm3 184vpshab (%rax), %xmm0, %xmm3 185vpshab %xmm0, (%rax), %xmm3 186 187vpshad %xmm0, %xmm1, %xmm3 188vpshad (%rax), %xmm0, %xmm3 189vpshad %xmm0, (%rax), %xmm3 190 191vpshaq %xmm0, %xmm1, %xmm3 192vpshaq (%rax), %xmm0, %xmm3 193vpshaq %xmm0, (%rax), %xmm3 194 195vpshaw %xmm0, %xmm1, %xmm3 196vpshaw (%rax), %xmm0, %xmm3 197vpshaw %xmm0, (%rax), %xmm3 198 199vpshlb %xmm0, %xmm1, %xmm3 200vpshlb (%rax), %xmm0, %xmm3 201vpshlb %xmm0, (%rax), %xmm3 202 203vpshld %xmm0, %xmm1, %xmm3 204vpshld (%rax), %xmm0, %xmm3 205vpshld %xmm0, (%rax), %xmm3 206 207vpshlq %xmm0, %xmm1, %xmm3 208vpshlq (%rax), %xmm0, %xmm3 209vpshlq %xmm0, (%rax), %xmm3 210 211vpshlw %xmm0, %xmm1, %xmm3 212vpshlw (%rax), %xmm0, %xmm3 213vpshlw %xmm0, (%rax), %xmm3 214 215# CHECK: Instruction Info: 216# CHECK-NEXT: [1]: #uOps 217# CHECK-NEXT: [2]: Latency 218# CHECK-NEXT: [3]: RThroughput 219# CHECK-NEXT: [4]: MayLoad 220# CHECK-NEXT: [5]: MayStore 221# CHECK-NEXT: [6]: HasSideEffects (U) 222 223# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 224# CHECK-NEXT: 1 3 1.00 vfrczpd %xmm0, %xmm3 225# CHECK-NEXT: 2 9 1.00 * vfrczpd (%rax), %xmm3 226# CHECK-NEXT: 1 3 1.00 vfrczpd %ymm0, %ymm3 227# CHECK-NEXT: 2 10 1.00 * vfrczpd (%rax), %ymm3 228# CHECK-NEXT: 1 3 1.00 vfrczps %xmm0, %xmm3 229# CHECK-NEXT: 2 9 1.00 * vfrczps (%rax), %xmm3 230# CHECK-NEXT: 1 3 1.00 vfrczps %ymm0, %ymm3 231# CHECK-NEXT: 2 10 1.00 * vfrczps (%rax), %ymm3 232# CHECK-NEXT: 1 3 1.00 vfrczsd %xmm0, %xmm3 233# CHECK-NEXT: 2 9 1.00 * vfrczsd (%rax), %xmm3 234# CHECK-NEXT: 1 3 1.00 vfrczss %xmm0, %xmm3 235# CHECK-NEXT: 2 9 1.00 * vfrczss (%rax), %xmm3 236# CHECK-NEXT: 1 1 0.50 vpcmov %xmm0, %xmm1, %xmm2, %xmm3 237# CHECK-NEXT: 2 7 0.50 * vpcmov (%rax), %xmm0, %xmm1, %xmm3 238# CHECK-NEXT: 2 7 0.50 * vpcmov %xmm0, (%rax), %xmm1, %xmm3 239# CHECK-NEXT: 1 1 1.00 vpcmov %ymm0, %ymm1, %ymm2, %ymm3 240# CHECK-NEXT: 2 8 1.00 * vpcmov (%rax), %ymm0, %ymm1, %ymm3 241# CHECK-NEXT: 2 8 1.00 * vpcmov %ymm0, (%rax), %ymm1, %ymm3 242# CHECK-NEXT: 1 1 0.50 vpcomltb %xmm0, %xmm1, %xmm3 243# CHECK-NEXT: 2 7 0.50 * vpcomltb (%rax), %xmm0, %xmm3 244# CHECK-NEXT: 1 1 0.50 vpcomltd %xmm0, %xmm1, %xmm3 245# CHECK-NEXT: 2 7 0.50 * vpcomltd (%rax), %xmm0, %xmm3 246# CHECK-NEXT: 1 1 0.50 vpcomltq %xmm0, %xmm1, %xmm3 247# CHECK-NEXT: 2 7 0.50 * vpcomltq (%rax), %xmm0, %xmm3 248# CHECK-NEXT: 1 1 0.50 vpcomltub %xmm0, %xmm1, %xmm3 249# CHECK-NEXT: 2 7 0.50 * vpcomltub (%rax), %xmm0, %xmm3 250# CHECK-NEXT: 1 1 0.50 vpcomltud %xmm0, %xmm1, %xmm3 251# CHECK-NEXT: 2 7 0.50 * vpcomltud (%rax), %xmm0, %xmm3 252# CHECK-NEXT: 1 1 0.50 vpcomltuq %xmm0, %xmm1, %xmm3 253# CHECK-NEXT: 2 7 0.50 * vpcomltuq (%rax), %xmm0, %xmm3 254# CHECK-NEXT: 1 1 0.50 vpcomltuw %xmm0, %xmm1, %xmm3 255# CHECK-NEXT: 2 7 0.50 * vpcomltuw (%rax), %xmm0, %xmm3 256# CHECK-NEXT: 1 1 0.50 vpcomltw %xmm0, %xmm1, %xmm3 257# CHECK-NEXT: 2 7 0.50 * vpcomltw (%rax), %xmm0, %xmm3 258# CHECK-NEXT: 1 1 1.00 vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 259# CHECK-NEXT: 2 7 1.00 * vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 260# CHECK-NEXT: 2 7 1.00 * vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 261# CHECK-NEXT: 1 1 1.00 vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 262# CHECK-NEXT: 2 8 1.00 * vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 263# CHECK-NEXT: 2 8 1.00 * vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 264# CHECK-NEXT: 1 1 1.00 vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 265# CHECK-NEXT: 2 7 1.00 * vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 266# CHECK-NEXT: 2 7 1.00 * vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 267# CHECK-NEXT: 1 1 1.00 vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 268# CHECK-NEXT: 2 8 1.00 * vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 269# CHECK-NEXT: 2 8 1.00 * vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 270# CHECK-NEXT: 1 1 0.50 vphaddbd %xmm0, %xmm3 271# CHECK-NEXT: 2 7 0.50 * vphaddbd (%rax), %xmm3 272# CHECK-NEXT: 1 1 0.50 vphaddbq %xmm0, %xmm3 273# CHECK-NEXT: 2 7 0.50 * vphaddbq (%rax), %xmm3 274# CHECK-NEXT: 1 1 0.50 vphaddbw %xmm0, %xmm3 275# CHECK-NEXT: 2 7 0.50 * vphaddbw (%rax), %xmm3 276# CHECK-NEXT: 1 1 0.50 vphadddq %xmm0, %xmm3 277# CHECK-NEXT: 2 7 0.50 * vphadddq (%rax), %xmm3 278# CHECK-NEXT: 1 1 0.50 vphaddubd %xmm0, %xmm3 279# CHECK-NEXT: 2 7 0.50 * vphaddubd (%rax), %xmm3 280# CHECK-NEXT: 1 1 0.50 vphaddubq %xmm0, %xmm3 281# CHECK-NEXT: 2 7 0.50 * vphaddubq (%rax), %xmm3 282# CHECK-NEXT: 1 1 0.50 vphaddubw %xmm0, %xmm3 283# CHECK-NEXT: 2 7 0.50 * vphaddubw (%rax), %xmm3 284# CHECK-NEXT: 1 1 0.50 vphaddudq %xmm0, %xmm3 285# CHECK-NEXT: 2 7 0.50 * vphaddudq (%rax), %xmm3 286# CHECK-NEXT: 1 1 0.50 vphadduwd %xmm0, %xmm3 287# CHECK-NEXT: 2 7 0.50 * vphadduwd (%rax), %xmm3 288# CHECK-NEXT: 1 1 0.50 vphadduwq %xmm0, %xmm3 289# CHECK-NEXT: 2 7 0.50 * vphadduwq (%rax), %xmm3 290# CHECK-NEXT: 1 1 0.50 vphaddwd %xmm0, %xmm3 291# CHECK-NEXT: 2 7 0.50 * vphaddwd (%rax), %xmm3 292# CHECK-NEXT: 1 1 0.50 vphaddwq %xmm0, %xmm3 293# CHECK-NEXT: 2 7 0.50 * vphaddwq (%rax), %xmm3 294# CHECK-NEXT: 1 1 0.50 vphsubbw %xmm0, %xmm3 295# CHECK-NEXT: 2 7 0.50 * vphsubbw (%rax), %xmm3 296# CHECK-NEXT: 1 1 0.50 vphsubdq %xmm0, %xmm3 297# CHECK-NEXT: 2 7 0.50 * vphsubdq (%rax), %xmm3 298# CHECK-NEXT: 1 1 0.50 vphsubwd %xmm0, %xmm3 299# CHECK-NEXT: 2 7 0.50 * vphsubwd (%rax), %xmm3 300# CHECK-NEXT: 1 5 1.00 vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 301# CHECK-NEXT: 2 11 1.00 * vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 302# CHECK-NEXT: 1 5 1.00 vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 303# CHECK-NEXT: 2 11 1.00 * vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 304# CHECK-NEXT: 1 5 1.00 vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 305# CHECK-NEXT: 2 11 1.00 * vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 306# CHECK-NEXT: 1 5 1.00 vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 307# CHECK-NEXT: 2 11 1.00 * vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 308# CHECK-NEXT: 1 5 1.00 vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 309# CHECK-NEXT: 2 11 1.00 * vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 310# CHECK-NEXT: 1 5 1.00 vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 311# CHECK-NEXT: 2 11 1.00 * vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 312# CHECK-NEXT: 1 5 1.00 vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 313# CHECK-NEXT: 2 11 1.00 * vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 314# CHECK-NEXT: 1 5 1.00 vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 315# CHECK-NEXT: 2 11 1.00 * vpmacssww %xmm0, (%rax), %xmm1, %xmm3 316# CHECK-NEXT: 1 5 1.00 vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 317# CHECK-NEXT: 2 11 1.00 * vpmacswd %xmm0, (%rax), %xmm1, %xmm3 318# CHECK-NEXT: 1 5 1.00 vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 319# CHECK-NEXT: 2 11 1.00 * vpmacsww %xmm0, (%rax), %xmm1, %xmm3 320# CHECK-NEXT: 1 5 1.00 vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 321# CHECK-NEXT: 2 11 1.00 * vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 322# CHECK-NEXT: 1 5 1.00 vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 323# CHECK-NEXT: 2 11 1.00 * vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 324# CHECK-NEXT: 1 1 0.50 vpperm %xmm0, %xmm1, %xmm2, %xmm3 325# CHECK-NEXT: 2 7 0.50 * vpperm (%rax), %xmm0, %xmm1, %xmm3 326# CHECK-NEXT: 2 7 0.50 * vpperm %xmm0, (%rax), %xmm1, %xmm3 327# CHECK-NEXT: 1 1 1.00 vprotb %xmm0, %xmm1, %xmm3 328# CHECK-NEXT: 2 7 1.00 * vprotb (%rax), %xmm0, %xmm3 329# CHECK-NEXT: 2 7 1.00 * vprotb %xmm0, (%rax), %xmm3 330# CHECK-NEXT: 1 1 1.00 vprotb $0, %xmm0, %xmm3 331# CHECK-NEXT: 2 7 1.00 * vprotb $0, (%rax), %xmm3 332# CHECK-NEXT: 1 1 1.00 vprotd %xmm0, %xmm1, %xmm3 333# CHECK-NEXT: 2 7 1.00 * vprotd (%rax), %xmm0, %xmm3 334# CHECK-NEXT: 2 7 1.00 * vprotd %xmm0, (%rax), %xmm3 335# CHECK-NEXT: 1 1 1.00 vprotd $0, %xmm0, %xmm3 336# CHECK-NEXT: 2 7 1.00 * vprotd $0, (%rax), %xmm3 337# CHECK-NEXT: 1 1 1.00 vprotq %xmm0, %xmm1, %xmm3 338# CHECK-NEXT: 2 7 1.00 * vprotq (%rax), %xmm0, %xmm3 339# CHECK-NEXT: 2 7 1.00 * vprotq %xmm0, (%rax), %xmm3 340# CHECK-NEXT: 1 1 1.00 vprotq $0, %xmm0, %xmm3 341# CHECK-NEXT: 2 7 1.00 * vprotq $0, (%rax), %xmm3 342# CHECK-NEXT: 1 1 1.00 vprotw %xmm0, %xmm1, %xmm3 343# CHECK-NEXT: 2 7 1.00 * vprotw (%rax), %xmm0, %xmm3 344# CHECK-NEXT: 2 7 1.00 * vprotw %xmm0, (%rax), %xmm3 345# CHECK-NEXT: 1 1 1.00 vprotw $0, %xmm0, %xmm3 346# CHECK-NEXT: 2 7 1.00 * vprotw $0, (%rax), %xmm3 347# CHECK-NEXT: 1 1 1.00 vpshab %xmm0, %xmm1, %xmm3 348# CHECK-NEXT: 2 7 1.00 * vpshab (%rax), %xmm0, %xmm3 349# CHECK-NEXT: 2 7 1.00 * vpshab %xmm0, (%rax), %xmm3 350# CHECK-NEXT: 1 1 1.00 vpshad %xmm0, %xmm1, %xmm3 351# CHECK-NEXT: 2 7 1.00 * vpshad (%rax), %xmm0, %xmm3 352# CHECK-NEXT: 2 7 1.00 * vpshad %xmm0, (%rax), %xmm3 353# CHECK-NEXT: 1 1 1.00 vpshaq %xmm0, %xmm1, %xmm3 354# CHECK-NEXT: 2 7 1.00 * vpshaq (%rax), %xmm0, %xmm3 355# CHECK-NEXT: 2 7 1.00 * vpshaq %xmm0, (%rax), %xmm3 356# CHECK-NEXT: 1 1 1.00 vpshaw %xmm0, %xmm1, %xmm3 357# CHECK-NEXT: 2 7 1.00 * vpshaw (%rax), %xmm0, %xmm3 358# CHECK-NEXT: 2 7 1.00 * vpshaw %xmm0, (%rax), %xmm3 359# CHECK-NEXT: 1 1 1.00 vpshlb %xmm0, %xmm1, %xmm3 360# CHECK-NEXT: 2 7 1.00 * vpshlb (%rax), %xmm0, %xmm3 361# CHECK-NEXT: 2 7 1.00 * vpshlb %xmm0, (%rax), %xmm3 362# CHECK-NEXT: 1 1 1.00 vpshld %xmm0, %xmm1, %xmm3 363# CHECK-NEXT: 2 7 1.00 * vpshld (%rax), %xmm0, %xmm3 364# CHECK-NEXT: 2 7 1.00 * vpshld %xmm0, (%rax), %xmm3 365# CHECK-NEXT: 1 1 1.00 vpshlq %xmm0, %xmm1, %xmm3 366# CHECK-NEXT: 2 7 1.00 * vpshlq (%rax), %xmm0, %xmm3 367# CHECK-NEXT: 2 7 1.00 * vpshlq %xmm0, (%rax), %xmm3 368# CHECK-NEXT: 1 1 1.00 vpshlw %xmm0, %xmm1, %xmm3 369# CHECK-NEXT: 2 7 1.00 * vpshlw (%rax), %xmm0, %xmm3 370# CHECK-NEXT: 2 7 1.00 * vpshlw %xmm0, (%rax), %xmm3 371 372# CHECK: Resources: 373# CHECK-NEXT: [0] - SBDivider 374# CHECK-NEXT: [1] - SBFPDivider 375# CHECK-NEXT: [2] - SBPort0 376# CHECK-NEXT: [3] - SBPort1 377# CHECK-NEXT: [4] - SBPort4 378# CHECK-NEXT: [5] - SBPort5 379# CHECK-NEXT: [6.0] - SBPort23 380# CHECK-NEXT: [6.1] - SBPort23 381 382# CHECK: Resource pressure per iteration: 383# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 384# CHECK-NEXT: - - 68.00 38.00 - 41.00 41.50 41.50 385 386# CHECK: Resource pressure by instruction: 387# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 388# CHECK-NEXT: - - - 1.00 - - - - vfrczpd %xmm0, %xmm3 389# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczpd (%rax), %xmm3 390# CHECK-NEXT: - - - 1.00 - - - - vfrczpd %ymm0, %ymm3 391# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczpd (%rax), %ymm3 392# CHECK-NEXT: - - - 1.00 - - - - vfrczps %xmm0, %xmm3 393# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczps (%rax), %xmm3 394# CHECK-NEXT: - - - 1.00 - - - - vfrczps %ymm0, %ymm3 395# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczps (%rax), %ymm3 396# CHECK-NEXT: - - - 1.00 - - - - vfrczsd %xmm0, %xmm3 397# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczsd (%rax), %xmm3 398# CHECK-NEXT: - - - 1.00 - - - - vfrczss %xmm0, %xmm3 399# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfrczss (%rax), %xmm3 400# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmov %xmm0, %xmm1, %xmm2, %xmm3 401# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmov (%rax), %xmm0, %xmm1, %xmm3 402# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmov %xmm0, (%rax), %xmm1, %xmm3 403# CHECK-NEXT: - - - - - 1.00 - - vpcmov %ymm0, %ymm1, %ymm2, %ymm3 404# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpcmov (%rax), %ymm0, %ymm1, %ymm3 405# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpcmov %ymm0, (%rax), %ymm1, %ymm3 406# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltb %xmm0, %xmm1, %xmm3 407# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltb (%rax), %xmm0, %xmm3 408# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltd %xmm0, %xmm1, %xmm3 409# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltd (%rax), %xmm0, %xmm3 410# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltq %xmm0, %xmm1, %xmm3 411# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltq (%rax), %xmm0, %xmm3 412# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltub %xmm0, %xmm1, %xmm3 413# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltub (%rax), %xmm0, %xmm3 414# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltud %xmm0, %xmm1, %xmm3 415# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltud (%rax), %xmm0, %xmm3 416# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltuq %xmm0, %xmm1, %xmm3 417# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltuq (%rax), %xmm0, %xmm3 418# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltuw %xmm0, %xmm1, %xmm3 419# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltuw (%rax), %xmm0, %xmm3 420# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcomltw %xmm0, %xmm1, %xmm3 421# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcomltw (%rax), %xmm0, %xmm3 422# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $0, %xmm0, %xmm1, %xmm2, %xmm3 423# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, (%rax), %xmm0, %xmm1, %xmm3 424# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, %xmm0, (%rax), %xmm1, %xmm3 425# CHECK-NEXT: - - - - - 1.00 - - vpermil2pd $0, %ymm0, %ymm1, %ymm2, %ymm3 426# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, (%rax), %ymm0, %ymm1, %ymm3 427# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2pd $0, %ymm0, (%rax), %ymm1, %ymm3 428# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $0, %xmm0, %xmm1, %xmm2, %xmm3 429# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, (%rax), %xmm0, %xmm1, %xmm3 430# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, %xmm0, (%rax), %xmm1, %xmm3 431# CHECK-NEXT: - - - - - 1.00 - - vpermil2ps $0, %ymm0, %ymm1, %ymm2, %ymm3 432# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, (%rax), %ymm0, %ymm1, %ymm3 433# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermil2ps $0, %ymm0, (%rax), %ymm1, %ymm3 434# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddbd %xmm0, %xmm3 435# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddbd (%rax), %xmm3 436# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddbq %xmm0, %xmm3 437# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddbq (%rax), %xmm3 438# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddbw %xmm0, %xmm3 439# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddbw (%rax), %xmm3 440# CHECK-NEXT: - - - 0.50 - 0.50 - - vphadddq %xmm0, %xmm3 441# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphadddq (%rax), %xmm3 442# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddubd %xmm0, %xmm3 443# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddubd (%rax), %xmm3 444# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddubq %xmm0, %xmm3 445# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddubq (%rax), %xmm3 446# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddubw %xmm0, %xmm3 447# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddubw (%rax), %xmm3 448# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddudq %xmm0, %xmm3 449# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddudq (%rax), %xmm3 450# CHECK-NEXT: - - - 0.50 - 0.50 - - vphadduwd %xmm0, %xmm3 451# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphadduwd (%rax), %xmm3 452# CHECK-NEXT: - - - 0.50 - 0.50 - - vphadduwq %xmm0, %xmm3 453# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphadduwq (%rax), %xmm3 454# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddwd %xmm0, %xmm3 455# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddwd (%rax), %xmm3 456# CHECK-NEXT: - - - 0.50 - 0.50 - - vphaddwq %xmm0, %xmm3 457# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphaddwq (%rax), %xmm3 458# CHECK-NEXT: - - - 0.50 - 0.50 - - vphsubbw %xmm0, %xmm3 459# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphsubbw (%rax), %xmm3 460# CHECK-NEXT: - - - 0.50 - 0.50 - - vphsubdq %xmm0, %xmm3 461# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphsubdq (%rax), %xmm3 462# CHECK-NEXT: - - - 0.50 - 0.50 - - vphsubwd %xmm0, %xmm3 463# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vphsubwd (%rax), %xmm3 464# CHECK-NEXT: - - 1.00 - - - - - vpmacsdd %xmm0, %xmm1, %xmm2, %xmm3 465# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdd %xmm0, (%rax), %xmm1, %xmm3 466# CHECK-NEXT: - - 1.00 - - - - - vpmacsdqh %xmm0, %xmm1, %xmm2, %xmm3 467# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdqh %xmm0, (%rax), %xmm1, %xmm3 468# CHECK-NEXT: - - 1.00 - - - - - vpmacsdql %xmm0, %xmm1, %xmm2, %xmm3 469# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsdql %xmm0, (%rax), %xmm1, %xmm3 470# CHECK-NEXT: - - 1.00 - - - - - vpmacssdd %xmm0, %xmm1, %xmm2, %xmm3 471# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdd %xmm0, (%rax), %xmm1, %xmm3 472# CHECK-NEXT: - - 1.00 - - - - - vpmacssdqh %xmm0, %xmm1, %xmm2, %xmm3 473# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdqh %xmm0, (%rax), %xmm1, %xmm3 474# CHECK-NEXT: - - 1.00 - - - - - vpmacssdql %xmm0, %xmm1, %xmm2, %xmm3 475# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssdql %xmm0, (%rax), %xmm1, %xmm3 476# CHECK-NEXT: - - 1.00 - - - - - vpmacsswd %xmm0, %xmm1, %xmm2, %xmm3 477# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsswd %xmm0, (%rax), %xmm1, %xmm3 478# CHECK-NEXT: - - 1.00 - - - - - vpmacssww %xmm0, %xmm1, %xmm2, %xmm3 479# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacssww %xmm0, (%rax), %xmm1, %xmm3 480# CHECK-NEXT: - - 1.00 - - - - - vpmacswd %xmm0, %xmm1, %xmm2, %xmm3 481# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacswd %xmm0, (%rax), %xmm1, %xmm3 482# CHECK-NEXT: - - 1.00 - - - - - vpmacsww %xmm0, %xmm1, %xmm2, %xmm3 483# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmacsww %xmm0, (%rax), %xmm1, %xmm3 484# CHECK-NEXT: - - 1.00 - - - - - vpmadcsswd %xmm0, %xmm1, %xmm2, %xmm3 485# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmadcsswd %xmm0, (%rax), %xmm1, %xmm3 486# CHECK-NEXT: - - 1.00 - - - - - vpmadcswd %xmm0, %xmm1, %xmm2, %xmm3 487# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmadcswd %xmm0, (%rax), %xmm1, %xmm3 488# CHECK-NEXT: - - - 0.50 - 0.50 - - vpperm %xmm0, %xmm1, %xmm2, %xmm3 489# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpperm (%rax), %xmm0, %xmm1, %xmm3 490# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpperm %xmm0, (%rax), %xmm1, %xmm3 491# CHECK-NEXT: - - 1.00 - - - - - vprotb %xmm0, %xmm1, %xmm3 492# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb (%rax), %xmm0, %xmm3 493# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb %xmm0, (%rax), %xmm3 494# CHECK-NEXT: - - 1.00 - - - - - vprotb $0, %xmm0, %xmm3 495# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotb $0, (%rax), %xmm3 496# CHECK-NEXT: - - 1.00 - - - - - vprotd %xmm0, %xmm1, %xmm3 497# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd (%rax), %xmm0, %xmm3 498# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd %xmm0, (%rax), %xmm3 499# CHECK-NEXT: - - 1.00 - - - - - vprotd $0, %xmm0, %xmm3 500# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotd $0, (%rax), %xmm3 501# CHECK-NEXT: - - 1.00 - - - - - vprotq %xmm0, %xmm1, %xmm3 502# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq (%rax), %xmm0, %xmm3 503# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq %xmm0, (%rax), %xmm3 504# CHECK-NEXT: - - 1.00 - - - - - vprotq $0, %xmm0, %xmm3 505# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotq $0, (%rax), %xmm3 506# CHECK-NEXT: - - 1.00 - - - - - vprotw %xmm0, %xmm1, %xmm3 507# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw (%rax), %xmm0, %xmm3 508# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw %xmm0, (%rax), %xmm3 509# CHECK-NEXT: - - 1.00 - - - - - vprotw $0, %xmm0, %xmm3 510# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vprotw $0, (%rax), %xmm3 511# CHECK-NEXT: - - 1.00 - - - - - vpshab %xmm0, %xmm1, %xmm3 512# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshab (%rax), %xmm0, %xmm3 513# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshab %xmm0, (%rax), %xmm3 514# CHECK-NEXT: - - 1.00 - - - - - vpshad %xmm0, %xmm1, %xmm3 515# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshad (%rax), %xmm0, %xmm3 516# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshad %xmm0, (%rax), %xmm3 517# CHECK-NEXT: - - 1.00 - - - - - vpshaq %xmm0, %xmm1, %xmm3 518# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaq (%rax), %xmm0, %xmm3 519# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaq %xmm0, (%rax), %xmm3 520# CHECK-NEXT: - - 1.00 - - - - - vpshaw %xmm0, %xmm1, %xmm3 521# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaw (%rax), %xmm0, %xmm3 522# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshaw %xmm0, (%rax), %xmm3 523# CHECK-NEXT: - - 1.00 - - - - - vpshlb %xmm0, %xmm1, %xmm3 524# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlb (%rax), %xmm0, %xmm3 525# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlb %xmm0, (%rax), %xmm3 526# CHECK-NEXT: - - 1.00 - - - - - vpshld %xmm0, %xmm1, %xmm3 527# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshld (%rax), %xmm0, %xmm3 528# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshld %xmm0, (%rax), %xmm3 529# CHECK-NEXT: - - 1.00 - - - - - vpshlq %xmm0, %xmm1, %xmm3 530# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlq (%rax), %xmm0, %xmm3 531# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlq %xmm0, (%rax), %xmm3 532# CHECK-NEXT: - - 1.00 - - - - - vpshlw %xmm0, %xmm1, %xmm3 533# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlw (%rax), %xmm0, %xmm3 534# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpshlw %xmm0, (%rax), %xmm3 535