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 4vgatherpf0dpd (%rax,%ymm1,2) {k1} 5vgatherpf0dps (%rax,%zmm1,2) {k1} 6vgatherpf0qpd (%rax,%zmm1,2) {k1} 7vgatherpf0qps (%rax,%zmm1,2) {k1} 8 9vgatherpf1dpd (%rax,%ymm1,2) {k1} 10vgatherpf1dps (%rax,%zmm1,2) {k1} 11vgatherpf1qpd (%rax,%zmm1,2) {k1} 12vgatherpf1qps (%rax,%zmm1,2) {k1} 13 14vscatterpf0dpd (%rax,%ymm1,2) {k1} 15vscatterpf0dps (%rax,%zmm1,2) {k1} 16vscatterpf0qpd (%rax,%zmm1,2) {k1} 17vscatterpf0qps (%rax,%zmm1,2) {k1} 18 19vscatterpf1dpd (%rax,%ymm1,2) {k1} 20vscatterpf1dps (%rax,%zmm1,2) {k1} 21vscatterpf1qpd (%rax,%zmm1,2) {k1} 22vscatterpf1qps (%rax,%zmm1,2) {k1} 23 24# CHECK: Instruction Info: 25# CHECK-NEXT: [1]: #uOps 26# CHECK-NEXT: [2]: Latency 27# CHECK-NEXT: [3]: RThroughput 28# CHECK-NEXT: [4]: MayLoad 29# CHECK-NEXT: [5]: MayStore 30# CHECK-NEXT: [6]: HasSideEffects (U) 31 32# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 33# CHECK-NEXT: 1 5 0.50 * * U vgatherpf0dpd (%rax,%ymm1,2) {%k1} 34# CHECK-NEXT: 1 5 0.50 * * U vgatherpf0dps (%rax,%zmm1,2) {%k1} 35# CHECK-NEXT: 1 5 0.50 * * U vgatherpf0qpd (%rax,%zmm1,2) {%k1} 36# CHECK-NEXT: 1 5 0.50 * * U vgatherpf0qps (%rax,%zmm1,2) {%k1} 37# CHECK-NEXT: 1 5 0.50 * * U vgatherpf1dpd (%rax,%ymm1,2) {%k1} 38# CHECK-NEXT: 1 5 0.50 * * U vgatherpf1dps (%rax,%zmm1,2) {%k1} 39# CHECK-NEXT: 1 5 0.50 * * U vgatherpf1qpd (%rax,%zmm1,2) {%k1} 40# CHECK-NEXT: 1 5 0.50 * * U vgatherpf1qps (%rax,%zmm1,2) {%k1} 41# CHECK-NEXT: 1 5 0.50 * * U vscatterpf0dpd (%rax,%ymm1,2) {%k1} 42# CHECK-NEXT: 1 5 0.50 * * U vscatterpf0dps (%rax,%zmm1,2) {%k1} 43# CHECK-NEXT: 1 5 0.50 * * U vscatterpf0qpd (%rax,%zmm1,2) {%k1} 44# CHECK-NEXT: 1 5 0.50 * * U vscatterpf0qps (%rax,%zmm1,2) {%k1} 45# CHECK-NEXT: 1 5 0.50 * * U vscatterpf1dpd (%rax,%ymm1,2) {%k1} 46# CHECK-NEXT: 1 5 0.50 * * U vscatterpf1dps (%rax,%zmm1,2) {%k1} 47# CHECK-NEXT: 1 5 0.50 * * U vscatterpf1qpd (%rax,%zmm1,2) {%k1} 48# CHECK-NEXT: 1 5 0.50 * * U vscatterpf1qps (%rax,%zmm1,2) {%k1} 49 50# CHECK: Resources: 51# CHECK-NEXT: [0] - SBDivider 52# CHECK-NEXT: [1] - SBFPDivider 53# CHECK-NEXT: [2] - SBPort0 54# CHECK-NEXT: [3] - SBPort1 55# CHECK-NEXT: [4] - SBPort4 56# CHECK-NEXT: [5] - SBPort5 57# CHECK-NEXT: [6.0] - SBPort23 58# CHECK-NEXT: [6.1] - SBPort23 59 60# CHECK: Resource pressure per iteration: 61# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] 62# CHECK-NEXT: - - - - - - 8.00 8.00 63 64# CHECK: Resource pressure by instruction: 65# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: 66# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf0dpd (%rax,%ymm1,2) {%k1} 67# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf0dps (%rax,%zmm1,2) {%k1} 68# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf0qpd (%rax,%zmm1,2) {%k1} 69# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf0qps (%rax,%zmm1,2) {%k1} 70# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf1dpd (%rax,%ymm1,2) {%k1} 71# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf1dps (%rax,%zmm1,2) {%k1} 72# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf1qpd (%rax,%zmm1,2) {%k1} 73# CHECK-NEXT: - - - - - - 0.50 0.50 vgatherpf1qps (%rax,%zmm1,2) {%k1} 74# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf0dpd (%rax,%ymm1,2) {%k1} 75# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf0dps (%rax,%zmm1,2) {%k1} 76# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf0qpd (%rax,%zmm1,2) {%k1} 77# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf0qps (%rax,%zmm1,2) {%k1} 78# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf1dpd (%rax,%ymm1,2) {%k1} 79# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf1dps (%rax,%zmm1,2) {%k1} 80# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf1qpd (%rax,%zmm1,2) {%k1} 81# CHECK-NEXT: - - - - - - 0.50 0.50 vscatterpf1qps (%rax,%zmm1,2) {%k1} 82