1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=sapphirerapids -instruction-tables < %s | FileCheck %s 3 4vpcompressb %zmm16, %zmm19 5vpcompressb %zmm16, (%rax) 6vpcompressb %zmm16, %zmm19 {k1} 7vpcompressb %zmm16, (%rax) {k1} 8vpcompressb %zmm16, %zmm19 {k1}{z} 9 10vpcompressw %zmm16, %zmm19 11vpcompressw %zmm16, (%rax) 12vpcompressw %zmm16, %zmm19 {k1} 13vpcompressw %zmm16, (%rax) {k1} 14vpcompressw %zmm16, %zmm19 {k1}{z} 15 16vpexpandb %zmm16, %zmm19 17vpexpandb (%rax), %zmm19 18vpexpandb %zmm16, %zmm19 {k1} 19vpexpandb (%rax), %zmm19 {k1} 20vpexpandb %zmm16, %zmm19 {k1}{z} 21 22vpexpandw %zmm16, %zmm19 23vpexpandw (%rax), %zmm19 24vpexpandw %zmm16, %zmm19 {k1} 25vpexpandw (%rax), %zmm19 {k1} 26vpexpandw %zmm16, %zmm19 {k1}{z} 27 28vpshldd $1, %zmm16, %zmm17, %zmm19 29vpshldd $1, (%rax), %zmm17, %zmm19 30vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 31vpshldd $1, %zmm16, %zmm17, %zmm19 {k1} 32vpshldd $1, (%rax), %zmm17, %zmm19 {k1} 33vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {k1} 34vpshldd $1, %zmm16, %zmm17, %zmm19 {k1}{z} 35vpshldd $1, (%rax), %zmm17, %zmm19 {k1}{z} 36vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {k1}{z} 37 38vpshldq $1, %zmm16, %zmm17, %zmm19 39vpshldq $1, (%rax), %zmm17, %zmm19 40vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 41vpshldq $1, %zmm16, %zmm17, %zmm19 {k1} 42vpshldq $1, (%rax), %zmm17, %zmm19 {k1} 43vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {k1} 44vpshldq $1, %zmm16, %zmm17, %zmm19 {k1}{z} 45vpshldq $1, (%rax), %zmm17, %zmm19 {k1}{z} 46vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {k1}{z} 47 48vpshldvd %zmm16, %zmm17, %zmm19 49vpshldvd (%rax), %zmm17, %zmm19 50vpshldvd (%rax){1to16}, %zmm17, %zmm19 51vpshldvd %zmm16, %zmm17, %zmm19 {k1} 52vpshldvd (%rax), %zmm17, %zmm19 {k1} 53vpshldvd (%rax){1to16}, %zmm17, %zmm19 {k1} 54vpshldvd %zmm16, %zmm17, %zmm19 {k1}{z} 55vpshldvd (%rax), %zmm17, %zmm19 {k1}{z} 56vpshldvd (%rax){1to16}, %zmm17, %zmm19 {k1}{z} 57 58vpshldvq %zmm16, %zmm17, %zmm19 59vpshldvq (%rax), %zmm17, %zmm19 60vpshldvq (%rax){1to8}, %zmm17, %zmm19 61vpshldvq %zmm16, %zmm17, %zmm19 {k1} 62vpshldvq (%rax), %zmm17, %zmm19 {k1} 63vpshldvq (%rax){1to8}, %zmm17, %zmm19 {k1} 64vpshldvq %zmm16, %zmm17, %zmm19 {k1}{z} 65vpshldvq (%rax), %zmm17, %zmm19 {k1}{z} 66vpshldvq (%rax){1to8}, %zmm17, %zmm19 {k1}{z} 67 68vpshldvw %zmm16, %zmm17, %zmm19 69vpshldvw (%rax), %zmm17, %zmm19 70vpshldvw %zmm16, %zmm17, %zmm19 {k1} 71vpshldvw (%rax), %zmm17, %zmm19 {k1} 72vpshldvw %zmm16, %zmm17, %zmm19 {k1}{z} 73vpshldvw (%rax), %zmm17, %zmm19 {k1}{z} 74 75vpshldw $1, %zmm16, %zmm17, %zmm19 76vpshldw $1, (%rax), %zmm17, %zmm19 77vpshldw $1, %zmm16, %zmm17, %zmm19 {k1} 78vpshldw $1, (%rax), %zmm17, %zmm19 {k1} 79vpshldw $1, %zmm16, %zmm17, %zmm19 {k1}{z} 80vpshldw $1, (%rax), %zmm17, %zmm19 {k1}{z} 81 82vpshrdd $1, %zmm16, %zmm17, %zmm19 83vpshrdd $1, (%rax), %zmm17, %zmm19 84vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 85vpshrdd $1, %zmm16, %zmm17, %zmm19 {k1} 86vpshrdd $1, (%rax), %zmm17, %zmm19 {k1} 87vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {k1} 88vpshrdd $1, %zmm16, %zmm17, %zmm19 {k1}{z} 89vpshrdd $1, (%rax), %zmm17, %zmm19 {k1}{z} 90vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {k1}{z} 91 92vpshrdq $1, %zmm16, %zmm17, %zmm19 93vpshrdq $1, (%rax), %zmm17, %zmm19 94vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 95vpshrdq $1, %zmm16, %zmm17, %zmm19 {k1} 96vpshrdq $1, (%rax), %zmm17, %zmm19 {k1} 97vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {k1} 98vpshrdq $1, %zmm16, %zmm17, %zmm19 {k1}{z} 99vpshrdq $1, (%rax), %zmm17, %zmm19 {k1}{z} 100vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {k1}{z} 101 102vpshrdvd %zmm16, %zmm17, %zmm19 103vpshrdvd (%rax), %zmm17, %zmm19 104vpshrdvd (%rax){1to16}, %zmm17, %zmm19 105vpshrdvd %zmm16, %zmm17, %zmm19 {k1} 106vpshrdvd (%rax), %zmm17, %zmm19 {k1} 107vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {k1} 108vpshrdvd %zmm16, %zmm17, %zmm19 {k1}{z} 109vpshrdvd (%rax), %zmm17, %zmm19 {k1}{z} 110vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {k1}{z} 111 112vpshrdvq %zmm16, %zmm17, %zmm19 113vpshrdvq (%rax), %zmm17, %zmm19 114vpshrdvq (%rax){1to8}, %zmm17, %zmm19 115vpshrdvq %zmm16, %zmm17, %zmm19 {k1} 116vpshrdvq (%rax), %zmm17, %zmm19 {k1} 117vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {k1} 118vpshrdvq %zmm16, %zmm17, %zmm19 {k1}{z} 119vpshrdvq (%rax), %zmm17, %zmm19 {k1}{z} 120vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {k1}{z} 121 122vpshrdvw %zmm16, %zmm17, %zmm19 123vpshrdvw (%rax), %zmm17, %zmm19 124vpshrdvw %zmm16, %zmm17, %zmm19 {k1} 125vpshrdvw (%rax), %zmm17, %zmm19 {k1} 126vpshrdvw %zmm16, %zmm17, %zmm19 {k1}{z} 127vpshrdvw (%rax), %zmm17, %zmm19 {k1}{z} 128 129vpshrdw $1, %zmm16, %zmm17, %zmm19 130vpshrdw $1, (%rax), %zmm17, %zmm19 131vpshrdw $1, %zmm16, %zmm17, %zmm19 {k1} 132vpshrdw $1, (%rax), %zmm17, %zmm19 {k1} 133vpshrdw $1, %zmm16, %zmm17, %zmm19 {k1}{z} 134vpshrdw $1, (%rax), %zmm17, %zmm19 {k1}{z} 135 136# CHECK: Instruction Info: 137# CHECK-NEXT: [1]: #uOps 138# CHECK-NEXT: [2]: Latency 139# CHECK-NEXT: [3]: RThroughput 140# CHECK-NEXT: [4]: MayLoad 141# CHECK-NEXT: [5]: MayStore 142# CHECK-NEXT: [6]: HasSideEffects (U) 143 144# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 145# CHECK-NEXT: 2 3 2.00 U vpcompressb %zmm16, %zmm19 146# CHECK-NEXT: 8 12 2.00 * vpcompressb %zmm16, (%rax) 147# CHECK-NEXT: 2 6 2.00 vpcompressb %zmm16, %zmm19 {%k1} 148# CHECK-NEXT: 8 14 2.00 * vpcompressb %zmm16, (%rax) {%k1} 149# CHECK-NEXT: 2 6 2.00 vpcompressb %zmm16, %zmm19 {%k1} {z} 150# CHECK-NEXT: 2 3 2.00 U vpcompressw %zmm16, %zmm19 151# CHECK-NEXT: 6 12 2.00 * vpcompressw %zmm16, (%rax) 152# CHECK-NEXT: 2 6 2.00 vpcompressw %zmm16, %zmm19 {%k1} 153# CHECK-NEXT: 6 14 2.00 * vpcompressw %zmm16, (%rax) {%k1} 154# CHECK-NEXT: 2 6 2.00 vpcompressw %zmm16, %zmm19 {%k1} {z} 155# CHECK-NEXT: 2 3 2.00 U vpexpandb %zmm16, %zmm19 156# CHECK-NEXT: 3 11 2.00 U vpexpandb (%rax), %zmm19 157# CHECK-NEXT: 2 8 2.00 vpexpandb %zmm16, %zmm19 {%k1} 158# CHECK-NEXT: 3 13 2.00 * vpexpandb (%rax), %zmm19 {%k1} 159# CHECK-NEXT: 2 8 2.00 vpexpandb %zmm16, %zmm19 {%k1} {z} 160# CHECK-NEXT: 2 3 2.00 U vpexpandw %zmm16, %zmm19 161# CHECK-NEXT: 3 11 2.00 U vpexpandw (%rax), %zmm19 162# CHECK-NEXT: 2 8 2.00 vpexpandw %zmm16, %zmm19 {%k1} 163# CHECK-NEXT: 3 13 2.00 * vpexpandw (%rax), %zmm19 {%k1} 164# CHECK-NEXT: 2 8 2.00 vpexpandw %zmm16, %zmm19 {%k1} {z} 165# CHECK-NEXT: 1 1 1.00 vpshldd $1, %zmm16, %zmm17, %zmm19 166# CHECK-NEXT: 2 9 1.00 * vpshldd $1, (%rax), %zmm17, %zmm19 167# CHECK-NEXT: 2 9 1.00 * vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 168# CHECK-NEXT: 2 2 1.00 vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1} 169# CHECK-NEXT: 3 10 1.00 * vpshldd $1, (%rax), %zmm17, %zmm19 {%k1} 170# CHECK-NEXT: 3 10 1.00 * vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} 171# CHECK-NEXT: 2 2 1.00 vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 172# CHECK-NEXT: 3 10 1.00 * vpshldd $1, (%rax), %zmm17, %zmm19 {%k1} {z} 173# CHECK-NEXT: 3 10 1.00 * vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 174# CHECK-NEXT: 1 1 1.00 vpshldq $1, %zmm16, %zmm17, %zmm19 175# CHECK-NEXT: 2 9 1.00 * vpshldq $1, (%rax), %zmm17, %zmm19 176# CHECK-NEXT: 2 9 1.00 * vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 177# CHECK-NEXT: 2 2 1.00 vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1} 178# CHECK-NEXT: 3 10 1.00 * vpshldq $1, (%rax), %zmm17, %zmm19 {%k1} 179# CHECK-NEXT: 3 10 1.00 * vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} 180# CHECK-NEXT: 2 2 1.00 vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 181# CHECK-NEXT: 3 10 1.00 * vpshldq $1, (%rax), %zmm17, %zmm19 {%k1} {z} 182# CHECK-NEXT: 3 10 1.00 * vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 183# CHECK-NEXT: 1 1 1.00 vpshldvd %zmm16, %zmm17, %zmm19 184# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax), %zmm17, %zmm19 185# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax){1to16}, %zmm17, %zmm19 186# CHECK-NEXT: 1 1 1.00 vpshldvd %zmm16, %zmm17, %zmm19 {%k1} 187# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax), %zmm17, %zmm19 {%k1} 188# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax){1to16}, %zmm17, %zmm19 {%k1} 189# CHECK-NEXT: 1 1 1.00 vpshldvd %zmm16, %zmm17, %zmm19 {%k1} {z} 190# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax), %zmm17, %zmm19 {%k1} {z} 191# CHECK-NEXT: 2 9 1.00 * vpshldvd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 192# CHECK-NEXT: 1 1 1.00 vpshldvq %zmm16, %zmm17, %zmm19 193# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax), %zmm17, %zmm19 194# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax){1to8}, %zmm17, %zmm19 195# CHECK-NEXT: 1 1 1.00 vpshldvq %zmm16, %zmm17, %zmm19 {%k1} 196# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax), %zmm17, %zmm19 {%k1} 197# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax){1to8}, %zmm17, %zmm19 {%k1} 198# CHECK-NEXT: 1 1 1.00 vpshldvq %zmm16, %zmm17, %zmm19 {%k1} {z} 199# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax), %zmm17, %zmm19 {%k1} {z} 200# CHECK-NEXT: 2 9 1.00 * vpshldvq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 201# CHECK-NEXT: 1 1 1.00 vpshldvw %zmm16, %zmm17, %zmm19 202# CHECK-NEXT: 2 9 1.00 * vpshldvw (%rax), %zmm17, %zmm19 203# CHECK-NEXT: 1 3 1.00 vpshldvw %zmm16, %zmm17, %zmm19 {%k1} 204# CHECK-NEXT: 2 11 1.00 * vpshldvw (%rax), %zmm17, %zmm19 {%k1} 205# CHECK-NEXT: 1 3 1.00 vpshldvw %zmm16, %zmm17, %zmm19 {%k1} {z} 206# CHECK-NEXT: 2 11 1.00 * vpshldvw (%rax), %zmm17, %zmm19 {%k1} {z} 207# CHECK-NEXT: 1 1 1.00 vpshldw $1, %zmm16, %zmm17, %zmm19 208# CHECK-NEXT: 2 9 1.00 * vpshldw $1, (%rax), %zmm17, %zmm19 209# CHECK-NEXT: 2 4 1.00 vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1} 210# CHECK-NEXT: 3 12 1.00 * vpshldw $1, (%rax), %zmm17, %zmm19 {%k1} 211# CHECK-NEXT: 2 4 1.00 vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 212# CHECK-NEXT: 3 12 1.00 * vpshldw $1, (%rax), %zmm17, %zmm19 {%k1} {z} 213# CHECK-NEXT: 1 1 1.00 vpshrdd $1, %zmm16, %zmm17, %zmm19 214# CHECK-NEXT: 2 9 1.00 * vpshrdd $1, (%rax), %zmm17, %zmm19 215# CHECK-NEXT: 2 9 1.00 * vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 216# CHECK-NEXT: 2 2 1.00 vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1} 217# CHECK-NEXT: 3 10 1.00 * vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1} 218# CHECK-NEXT: 3 10 1.00 * vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} 219# CHECK-NEXT: 2 2 1.00 vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 220# CHECK-NEXT: 3 10 1.00 * vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1} {z} 221# CHECK-NEXT: 3 10 1.00 * vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 222# CHECK-NEXT: 1 1 1.00 vpshrdq $1, %zmm16, %zmm17, %zmm19 223# CHECK-NEXT: 2 9 1.00 * vpshrdq $1, (%rax), %zmm17, %zmm19 224# CHECK-NEXT: 2 9 1.00 * vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 225# CHECK-NEXT: 2 2 1.00 vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1} 226# CHECK-NEXT: 3 10 1.00 * vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1} 227# CHECK-NEXT: 3 10 1.00 * vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} 228# CHECK-NEXT: 2 2 1.00 vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 229# CHECK-NEXT: 3 10 1.00 * vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1} {z} 230# CHECK-NEXT: 3 10 1.00 * vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 231# CHECK-NEXT: 1 1 1.00 vpshrdvd %zmm16, %zmm17, %zmm19 232# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax), %zmm17, %zmm19 233# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax){1to16}, %zmm17, %zmm19 234# CHECK-NEXT: 1 1 1.00 vpshrdvd %zmm16, %zmm17, %zmm19 {%k1} 235# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax), %zmm17, %zmm19 {%k1} 236# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {%k1} 237# CHECK-NEXT: 1 1 1.00 vpshrdvd %zmm16, %zmm17, %zmm19 {%k1} {z} 238# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax), %zmm17, %zmm19 {%k1} {z} 239# CHECK-NEXT: 2 9 1.00 * vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 240# CHECK-NEXT: 1 1 1.00 vpshrdvq %zmm16, %zmm17, %zmm19 241# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax), %zmm17, %zmm19 242# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax){1to8}, %zmm17, %zmm19 243# CHECK-NEXT: 1 1 1.00 vpshrdvq %zmm16, %zmm17, %zmm19 {%k1} 244# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax), %zmm17, %zmm19 {%k1} 245# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {%k1} 246# CHECK-NEXT: 1 1 1.00 vpshrdvq %zmm16, %zmm17, %zmm19 {%k1} {z} 247# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax), %zmm17, %zmm19 {%k1} {z} 248# CHECK-NEXT: 2 9 1.00 * vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 249# CHECK-NEXT: 1 1 1.00 vpshrdvw %zmm16, %zmm17, %zmm19 250# CHECK-NEXT: 2 9 1.00 * vpshrdvw (%rax), %zmm17, %zmm19 251# CHECK-NEXT: 1 3 1.00 vpshrdvw %zmm16, %zmm17, %zmm19 {%k1} 252# CHECK-NEXT: 2 11 1.00 * vpshrdvw (%rax), %zmm17, %zmm19 {%k1} 253# CHECK-NEXT: 1 3 1.00 vpshrdvw %zmm16, %zmm17, %zmm19 {%k1} {z} 254# CHECK-NEXT: 2 11 1.00 * vpshrdvw (%rax), %zmm17, %zmm19 {%k1} {z} 255# CHECK-NEXT: 1 1 1.00 vpshrdw $1, %zmm16, %zmm17, %zmm19 256# CHECK-NEXT: 2 9 1.00 * vpshrdw $1, (%rax), %zmm17, %zmm19 257# CHECK-NEXT: 2 4 1.00 vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1} 258# CHECK-NEXT: 3 12 1.00 * vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1} 259# CHECK-NEXT: 2 4 1.00 vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 260# CHECK-NEXT: 3 12 1.00 * vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1} {z} 261 262# CHECK: Resources: 263# CHECK-NEXT: [0] - SPRPort00 264# CHECK-NEXT: [1] - SPRPort01 265# CHECK-NEXT: [2] - SPRPort02 266# CHECK-NEXT: [3] - SPRPort03 267# CHECK-NEXT: [4] - SPRPort04 268# CHECK-NEXT: [5] - SPRPort05 269# CHECK-NEXT: [6] - SPRPort06 270# CHECK-NEXT: [7] - SPRPort07 271# CHECK-NEXT: [8] - SPRPort08 272# CHECK-NEXT: [9] - SPRPort09 273# CHECK-NEXT: [10] - SPRPort10 274# CHECK-NEXT: [11] - SPRPort11 275# CHECK-NEXT: [12] - SPRPortInvalid 276 277# CHECK: Resource pressure per iteration: 278# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 279# CHECK-NEXT: 117.40 0.40 21.33 21.33 3.00 56.40 1.40 3.00 3.00 3.00 21.33 0.40 - 280 281# CHECK: Resource pressure by instruction: 282# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: 283# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressb %zmm16, %zmm19 284# CHECK-NEXT: 1.20 0.20 - - 1.00 2.20 0.20 1.00 1.00 1.00 - 0.20 - vpcompressb %zmm16, (%rax) 285# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressb %zmm16, %zmm19 {%k1} 286# CHECK-NEXT: 1.20 0.20 - - 1.00 2.20 0.20 1.00 1.00 1.00 - 0.20 - vpcompressb %zmm16, (%rax) {%k1} 287# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressb %zmm16, %zmm19 {%k1} {z} 288# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressw %zmm16, %zmm19 289# CHECK-NEXT: 1.50 - - - 0.50 2.00 0.50 0.50 0.50 0.50 - - - vpcompressw %zmm16, (%rax) 290# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressw %zmm16, %zmm19 {%k1} 291# CHECK-NEXT: 1.50 - - - 0.50 2.00 0.50 0.50 0.50 0.50 - - - vpcompressw %zmm16, (%rax) {%k1} 292# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpcompressw %zmm16, %zmm19 {%k1} {z} 293# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandb %zmm16, %zmm19 294# CHECK-NEXT: - - 0.33 0.33 - 2.00 - - - - 0.33 - - vpexpandb (%rax), %zmm19 295# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandb %zmm16, %zmm19 {%k1} 296# CHECK-NEXT: - - 0.33 0.33 - 2.00 - - - - 0.33 - - vpexpandb (%rax), %zmm19 {%k1} 297# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandb %zmm16, %zmm19 {%k1} {z} 298# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandw %zmm16, %zmm19 299# CHECK-NEXT: - - 0.33 0.33 - 2.00 - - - - 0.33 - - vpexpandw (%rax), %zmm19 300# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandw %zmm16, %zmm19 {%k1} 301# CHECK-NEXT: - - 0.33 0.33 - 2.00 - - - - 0.33 - - vpexpandw (%rax), %zmm19 {%k1} 302# CHECK-NEXT: - - - - - 2.00 - - - - - - - vpexpandw %zmm16, %zmm19 {%k1} {z} 303# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldd $1, %zmm16, %zmm17, %zmm19 304# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldd $1, (%rax), %zmm17, %zmm19 305# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 306# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1} 307# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldd $1, (%rax), %zmm17, %zmm19 {%k1} 308# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} 309# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldd $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 310# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldd $1, (%rax), %zmm17, %zmm19 {%k1} {z} 311# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 312# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldq $1, %zmm16, %zmm17, %zmm19 313# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldq $1, (%rax), %zmm17, %zmm19 314# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 315# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1} 316# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldq $1, (%rax), %zmm17, %zmm19 {%k1} 317# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} 318# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldq $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 319# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldq $1, (%rax), %zmm17, %zmm19 {%k1} {z} 320# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 321# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvd %zmm16, %zmm17, %zmm19 322# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax), %zmm17, %zmm19 323# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax){1to16}, %zmm17, %zmm19 324# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvd %zmm16, %zmm17, %zmm19 {%k1} 325# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax), %zmm17, %zmm19 {%k1} 326# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax){1to16}, %zmm17, %zmm19 {%k1} 327# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvd %zmm16, %zmm17, %zmm19 {%k1} {z} 328# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax), %zmm17, %zmm19 {%k1} {z} 329# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 330# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvq %zmm16, %zmm17, %zmm19 331# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax), %zmm17, %zmm19 332# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax){1to8}, %zmm17, %zmm19 333# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvq %zmm16, %zmm17, %zmm19 {%k1} 334# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax), %zmm17, %zmm19 {%k1} 335# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax){1to8}, %zmm17, %zmm19 {%k1} 336# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvq %zmm16, %zmm17, %zmm19 {%k1} {z} 337# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax), %zmm17, %zmm19 {%k1} {z} 338# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 339# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvw %zmm16, %zmm17, %zmm19 340# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvw (%rax), %zmm17, %zmm19 341# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvw %zmm16, %zmm17, %zmm19 {%k1} 342# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvw (%rax), %zmm17, %zmm19 {%k1} 343# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldvw %zmm16, %zmm17, %zmm19 {%k1} {z} 344# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldvw (%rax), %zmm17, %zmm19 {%k1} {z} 345# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshldw $1, %zmm16, %zmm17, %zmm19 346# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshldw $1, (%rax), %zmm17, %zmm19 347# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1} 348# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldw $1, (%rax), %zmm17, %zmm19 {%k1} 349# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshldw $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 350# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshldw $1, (%rax), %zmm17, %zmm19 {%k1} {z} 351# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdd $1, %zmm16, %zmm17, %zmm19 352# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdd $1, (%rax), %zmm17, %zmm19 353# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 354# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1} 355# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1} 356# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} 357# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdd $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 358# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdd $1, (%rax), %zmm17, %zmm19 {%k1} {z} 359# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdd $1, (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 360# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdq $1, %zmm16, %zmm17, %zmm19 361# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdq $1, (%rax), %zmm17, %zmm19 362# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 363# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1} 364# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1} 365# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} 366# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdq $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 367# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdq $1, (%rax), %zmm17, %zmm19 {%k1} {z} 368# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdq $1, (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 369# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvd %zmm16, %zmm17, %zmm19 370# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax), %zmm17, %zmm19 371# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax){1to16}, %zmm17, %zmm19 372# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvd %zmm16, %zmm17, %zmm19 {%k1} 373# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax), %zmm17, %zmm19 {%k1} 374# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {%k1} 375# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvd %zmm16, %zmm17, %zmm19 {%k1} {z} 376# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax), %zmm17, %zmm19 {%k1} {z} 377# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvd (%rax){1to16}, %zmm17, %zmm19 {%k1} {z} 378# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvq %zmm16, %zmm17, %zmm19 379# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax), %zmm17, %zmm19 380# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax){1to8}, %zmm17, %zmm19 381# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvq %zmm16, %zmm17, %zmm19 {%k1} 382# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax), %zmm17, %zmm19 {%k1} 383# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {%k1} 384# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvq %zmm16, %zmm17, %zmm19 {%k1} {z} 385# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax), %zmm17, %zmm19 {%k1} {z} 386# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvq (%rax){1to8}, %zmm17, %zmm19 {%k1} {z} 387# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvw %zmm16, %zmm17, %zmm19 388# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvw (%rax), %zmm17, %zmm19 389# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvw %zmm16, %zmm17, %zmm19 {%k1} 390# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvw (%rax), %zmm17, %zmm19 {%k1} 391# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdvw %zmm16, %zmm17, %zmm19 {%k1} {z} 392# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdvw (%rax), %zmm17, %zmm19 {%k1} {z} 393# CHECK-NEXT: 1.00 - - - - - - - - - - - - vpshrdw $1, %zmm16, %zmm17, %zmm19 394# CHECK-NEXT: 1.00 - 0.33 0.33 - - - - - - 0.33 - - vpshrdw $1, (%rax), %zmm17, %zmm19 395# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1} 396# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1} 397# CHECK-NEXT: 1.50 - - - - 0.50 - - - - - - - vpshrdw $1, %zmm16, %zmm17, %zmm19 {%k1} {z} 398# CHECK-NEXT: 1.50 - 0.33 0.33 - 0.50 - - - - 0.33 - - vpshrdw $1, (%rax), %zmm17, %zmm19 {%k1} {z} 399