165 lines · plain
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver4 -instruction-tables < %s | FileCheck %s3 4vpopcntd %xmm1, %xmm05vpopcntd (%rdi), %xmm06vpopcntd (%rdi){1to4}, %xmm07 8vpopcntd %xmm1, %xmm0 {%k1}9vpopcntd (%rdi), %xmm0 {%k1}10vpopcntd (%rdi){1to4}, %xmm0 {%k1}11 12vpopcntd %xmm1, %xmm0 {%k1} {z}13vpopcntd (%rdi), %xmm0 {%k1} {z}14vpopcntd (%rdi){1to4}, %xmm0 {%k1} {z}15 16vpopcntd %ymm1, %ymm017vpopcntd (%rdi), %ymm018vpopcntd (%rdi){1to8}, %ymm019 20vpopcntd %ymm1, %ymm0 {%k1}21vpopcntd (%rdi), %ymm0 {%k1}22vpopcntd (%rdi){1to8}, %ymm0 {%k1}23 24vpopcntd %ymm1, %ymm0 {%k1} {z}25vpopcntd (%rdi), %ymm0 {%k1} {z}26vpopcntd (%rdi){1to8}, %ymm0 {%k1} {z}27 28vpopcntq %xmm1, %xmm029vpopcntq (%rdi), %xmm030vpopcntq (%rdi){1to2}, %xmm031 32vpopcntq %xmm1, %xmm0 {%k1}33vpopcntq (%rdi), %xmm0 {%k1}34vpopcntq (%rdi){1to2}, %xmm0 {%k1}35 36vpopcntq %xmm1, %xmm0 {%k1} {z}37vpopcntq (%rdi), %xmm0 {%k1} {z}38vpopcntq (%rdi){1to2}, %xmm0 {%k1} {z}39 40vpopcntq %ymm1, %ymm041vpopcntq (%rdi), %ymm042vpopcntq (%rdi){1to4}, %ymm043 44vpopcntq %ymm1, %ymm0 {%k1}45vpopcntq (%rdi), %ymm0 {%k1}46vpopcntq (%rdi){1to4}, %ymm0 {%k1}47 48vpopcntq %ymm1, %ymm0 {%k1} {z}49vpopcntq (%rdi), %ymm0 {%k1} {z}50vpopcntq (%rdi){1to4}, %ymm0 {%k1} {z}51 52# CHECK: Instruction Info:53# CHECK-NEXT: [1]: #uOps54# CHECK-NEXT: [2]: Latency55# CHECK-NEXT: [3]: RThroughput56# CHECK-NEXT: [4]: MayLoad57# CHECK-NEXT: [5]: MayStore58# CHECK-NEXT: [6]: HasSideEffects (U)59 60# CHECK: [1] [2] [3] [4] [5] [6] Instructions:61# CHECK-NEXT: 1 2 1.00 vpopcntd %xmm1, %xmm062# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %xmm063# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to4}, %xmm064# CHECK-NEXT: 1 2 1.00 vpopcntd %xmm1, %xmm0 {%k1}65# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %xmm0 {%k1}66# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to4}, %xmm0 {%k1}67# CHECK-NEXT: 1 2 1.00 vpopcntd %xmm1, %xmm0 {%k1} {z}68# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %xmm0 {%k1} {z}69# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to4}, %xmm0 {%k1} {z}70# CHECK-NEXT: 1 1 0.25 vpopcntd %ymm1, %ymm071# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %ymm072# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to8}, %ymm073# CHECK-NEXT: 1 1 0.25 vpopcntd %ymm1, %ymm0 {%k1}74# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %ymm0 {%k1}75# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to8}, %ymm0 {%k1}76# CHECK-NEXT: 1 1 0.25 vpopcntd %ymm1, %ymm0 {%k1} {z}77# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi), %ymm0 {%k1} {z}78# CHECK-NEXT: 1 8 0.50 * vpopcntd (%rdi){1to8}, %ymm0 {%k1} {z}79# CHECK-NEXT: 1 2 1.00 vpopcntq %xmm1, %xmm080# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %xmm081# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to2}, %xmm082# CHECK-NEXT: 1 2 1.00 vpopcntq %xmm1, %xmm0 {%k1}83# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %xmm0 {%k1}84# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to2}, %xmm0 {%k1}85# CHECK-NEXT: 1 2 1.00 vpopcntq %xmm1, %xmm0 {%k1} {z}86# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %xmm0 {%k1} {z}87# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to2}, %xmm0 {%k1} {z}88# CHECK-NEXT: 1 1 0.25 vpopcntq %ymm1, %ymm089# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %ymm090# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to4}, %ymm091# CHECK-NEXT: 1 1 0.25 vpopcntq %ymm1, %ymm0 {%k1}92# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %ymm0 {%k1}93# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to4}, %ymm0 {%k1}94# CHECK-NEXT: 1 1 0.25 vpopcntq %ymm1, %ymm0 {%k1} {z}95# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi), %ymm0 {%k1} {z}96# CHECK-NEXT: 1 8 0.50 * vpopcntq (%rdi){1to4}, %ymm0 {%k1} {z}97 98# CHECK: Resources:99# CHECK-NEXT: [0] - Zn4AGU0100# CHECK-NEXT: [1] - Zn4AGU1101# CHECK-NEXT: [2] - Zn4AGU2102# CHECK-NEXT: [3] - Zn4ALU0103# CHECK-NEXT: [4] - Zn4ALU1104# CHECK-NEXT: [5] - Zn4ALU2105# CHECK-NEXT: [6] - Zn4ALU3106# CHECK-NEXT: [7] - Zn4BRU1107# CHECK-NEXT: [8] - Zn4FP0108# CHECK-NEXT: [9] - Zn4FP1109# CHECK-NEXT: [10] - Zn4FP2110# CHECK-NEXT: [11] - Zn4FP3111# CHECK-NEXT: [12.0] - Zn4FP45112# CHECK-NEXT: [12.1] - Zn4FP45113# CHECK-NEXT: [13] - Zn4FPSt114# CHECK-NEXT: [14.0] - Zn4LSU115# CHECK-NEXT: [14.1] - Zn4LSU116# CHECK-NEXT: [14.2] - Zn4LSU117# CHECK-NEXT: [15.0] - Zn4Load118# CHECK-NEXT: [15.1] - Zn4Load119# CHECK-NEXT: [15.2] - Zn4Load120# CHECK-NEXT: [16.0] - Zn4Store121# CHECK-NEXT: [16.1] - Zn4Store122 123# CHECK: Resource pressure per iteration:124# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1]125# CHECK-NEXT: - - - - - - - - 13.50 13.50 7.50 7.50 12.00 12.00 - 8.00 8.00 8.00 8.00 8.00 8.00 - -126 127# CHECK: Resource pressure by instruction:128# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12.0] [12.1] [13] [14.0] [14.1] [14.2] [15.0] [15.1] [15.2] [16.0] [16.1] Instructions:129# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntd %xmm1, %xmm0130# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %xmm0131# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to4}, %xmm0132# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntd %xmm1, %xmm0 {%k1}133# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %xmm0 {%k1}134# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to4}, %xmm0 {%k1}135# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntd %xmm1, %xmm0 {%k1} {z}136# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %xmm0 {%k1} {z}137# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to4}, %xmm0 {%k1} {z}138# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntd %ymm1, %ymm0139# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %ymm0140# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to8}, %ymm0141# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntd %ymm1, %ymm0 {%k1}142# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %ymm0 {%k1}143# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to8}, %ymm0 {%k1}144# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntd %ymm1, %ymm0 {%k1} {z}145# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi), %ymm0 {%k1} {z}146# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntd (%rdi){1to8}, %ymm0 {%k1} {z}147# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntq %xmm1, %xmm0148# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %xmm0149# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to2}, %xmm0150# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntq %xmm1, %xmm0 {%k1}151# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %xmm0 {%k1}152# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to2}, %xmm0 {%k1}153# CHECK-NEXT: - - - - - - - - 1.00 1.00 - - - - - - - - - - - - - vpopcntq %xmm1, %xmm0 {%k1} {z}154# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %xmm0 {%k1} {z}155# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to2}, %xmm0 {%k1} {z}156# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntq %ymm1, %ymm0157# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %ymm0158# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to4}, %ymm0159# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntq %ymm1, %ymm0 {%k1}160# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %ymm0 {%k1}161# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to4}, %ymm0 {%k1}162# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 - - - - - - - - - - - vpopcntq %ymm1, %ymm0 {%k1} {z}163# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi), %ymm0 {%k1} {z}164# CHECK-NEXT: - - - - - - - - 0.25 0.25 0.25 0.25 0.50 0.50 - 0.33 0.33 0.33 0.33 0.33 0.33 - - vpopcntq (%rdi){1to4}, %ymm0 {%k1} {z}165