1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py 2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=alderlake -instruction-tables < %s | FileCheck %s 3 4vpdpbusd %xmm0, %xmm1, %xmm2 5vpdpbusd (%rax), %xmm1, %xmm2 6 7vpdpbusd %ymm0, %ymm1, %ymm2 8vpdpbusd (%rax), %ymm1, %ymm2 9 10vpdpbusds %xmm0, %xmm1, %xmm2 11vpdpbusds (%rax), %xmm1, %xmm2 12 13vpdpbusds %ymm0, %ymm1, %ymm2 14vpdpbusds (%rax), %ymm1, %ymm2 15 16vpdpwssd %xmm0, %xmm1, %xmm2 17vpdpwssd (%rax), %xmm1, %xmm2 18 19vpdpwssd %ymm0, %ymm1, %ymm2 20vpdpwssd (%rax), %ymm1, %ymm2 21 22vpdpwssds %xmm0, %xmm1, %xmm2 23vpdpwssds (%rax), %xmm1, %xmm2 24 25vpdpwssds %ymm0, %ymm1, %ymm2 26vpdpwssds (%rax), %ymm1, %ymm2 27 28# CHECK: Instruction Info: 29# CHECK-NEXT: [1]: #uOps 30# CHECK-NEXT: [2]: Latency 31# CHECK-NEXT: [3]: RThroughput 32# CHECK-NEXT: [4]: MayLoad 33# CHECK-NEXT: [5]: MayStore 34# CHECK-NEXT: [6]: HasSideEffects (U) 35 36# CHECK: [1] [2] [3] [4] [5] [6] Instructions: 37# CHECK-NEXT: 1 5 0.50 vpdpbusd %xmm0, %xmm1, %xmm2 38# CHECK-NEXT: 2 13 0.50 * vpdpbusd (%rax), %xmm1, %xmm2 39# CHECK-NEXT: 1 5 0.50 vpdpbusd %ymm0, %ymm1, %ymm2 40# CHECK-NEXT: 2 13 0.50 * vpdpbusd (%rax), %ymm1, %ymm2 41# CHECK-NEXT: 1 5 0.50 vpdpbusds %xmm0, %xmm1, %xmm2 42# CHECK-NEXT: 2 13 0.50 * vpdpbusds (%rax), %xmm1, %xmm2 43# CHECK-NEXT: 1 5 0.50 vpdpbusds %ymm0, %ymm1, %ymm2 44# CHECK-NEXT: 2 13 0.50 * vpdpbusds (%rax), %ymm1, %ymm2 45# CHECK-NEXT: 1 5 0.50 vpdpwssd %xmm0, %xmm1, %xmm2 46# CHECK-NEXT: 2 13 0.50 * vpdpwssd (%rax), %xmm1, %xmm2 47# CHECK-NEXT: 1 5 0.50 vpdpwssd %ymm0, %ymm1, %ymm2 48# CHECK-NEXT: 2 13 0.50 * vpdpwssd (%rax), %ymm1, %ymm2 49# CHECK-NEXT: 1 5 0.50 vpdpwssds %xmm0, %xmm1, %xmm2 50# CHECK-NEXT: 2 13 0.50 * vpdpwssds (%rax), %xmm1, %xmm2 51# CHECK-NEXT: 1 5 0.50 vpdpwssds %ymm0, %ymm1, %ymm2 52# CHECK-NEXT: 2 13 0.50 * vpdpwssds (%rax), %ymm1, %ymm2 53 54# CHECK: Resources: 55# CHECK-NEXT: [0] - ADLPPort00 56# CHECK-NEXT: [1] - ADLPPort01 57# CHECK-NEXT: [2] - ADLPPort02 58# CHECK-NEXT: [3] - ADLPPort03 59# CHECK-NEXT: [4] - ADLPPort04 60# CHECK-NEXT: [5] - ADLPPort05 61# CHECK-NEXT: [6] - ADLPPort06 62# CHECK-NEXT: [7] - ADLPPort07 63# CHECK-NEXT: [8] - ADLPPort08 64# CHECK-NEXT: [9] - ADLPPort09 65# CHECK-NEXT: [10] - ADLPPort10 66# CHECK-NEXT: [11] - ADLPPort11 67# CHECK-NEXT: [12] - ADLPPortInvalid 68 69# CHECK: Resource pressure per iteration: 70# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] 71# CHECK-NEXT: 8.00 8.00 2.67 2.67 - - - - - - 2.67 - - 72 73# CHECK: Resource pressure by instruction: 74# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] Instructions: 75# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpbusd %xmm0, %xmm1, %xmm2 76# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpbusd (%rax), %xmm1, %xmm2 77# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpbusd %ymm0, %ymm1, %ymm2 78# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpbusd (%rax), %ymm1, %ymm2 79# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpbusds %xmm0, %xmm1, %xmm2 80# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpbusds (%rax), %xmm1, %xmm2 81# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpbusds %ymm0, %ymm1, %ymm2 82# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpbusds (%rax), %ymm1, %ymm2 83# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpwssd %xmm0, %xmm1, %xmm2 84# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpwssd (%rax), %xmm1, %xmm2 85# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpwssd %ymm0, %ymm1, %ymm2 86# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpwssd (%rax), %ymm1, %ymm2 87# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpwssds %xmm0, %xmm1, %xmm2 88# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpwssds (%rax), %xmm1, %xmm2 89# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - vpdpwssds %ymm0, %ymm1, %ymm2 90# CHECK-NEXT: 0.50 0.50 0.33 0.33 - - - - - - 0.33 - - vpdpwssds (%rax), %ymm1, %ymm2 91