From a101f8588adfc7eec2a4e28cb43207ad3cf04e1d Mon Sep 17 00:00:00 2001 From: Rafael Ravedutti Date: Wed, 5 Apr 2023 22:11:55 +0200 Subject: [PATCH] Add analyses with llvm-mca Signed-off-by: Rafael Ravedutti --- .../gromacs-icx-avx512-dp-mca-csx.out | 220 +++++++++++++++++ .../gromacs-icx-avx512-dp-mca-icx.out | 222 ++++++++++++++++++ .../gromacs-icx-avx512-sp-mca-csx.out | 138 +++++++++++ .../gromacs-icx-avx512-sp-mca-icx.out | 140 +++++++++++ 4 files changed, 720 insertions(+) create mode 100644 static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-csx.out create mode 100644 static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-icx.out create mode 100644 static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-csx.out create mode 100644 static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-icx.out diff --git a/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-csx.out b/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-csx.out new file mode 100644 index 0000000..24df8e8 --- /dev/null +++ b/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-csx.out @@ -0,0 +1,220 @@ + +[0] Code Region + +Iterations: 100 +Instructions: 8800 +Total Cycles: 4293 +Total uOps: 10500 + +Dispatch Width: 6 +uOps Per Cycle: 2.45 +IPC: 2.05 +Block RThroughput: 32.0 + + +Instruction Info: +[1]: #uOps +[2]: Latency +[3]: RThroughput +[4]: MayLoad +[5]: MayStore +[6]: HasSideEffects (U) + +[1] [2] [3] [4] [5] [6] Instructions: + 1 5 0.50 * movslq (%rdx,%rcx,4), %rax + 1 1 0.50 leaq (%rax,%rax,2), %rax + 1 1 0.50 shlq $6, %rax + 2 8 0.50 * vmovapd (%rdi,%rax), %zmm28 + 2 8 0.50 * vmovapd 64(%rdi,%rax), %zmm29 + 2 8 0.50 * vmovapd 128(%rdi,%rax), %zmm30 + 2 8 0.50 * vmovupd 64(%rsp), %zmm3 + 1 4 0.50 vsubpd %zmm28, %zmm3, %zmm14 + 1 4 0.50 vsubpd %zmm29, %zmm26, %zmm12 + 1 4 0.50 vsubpd %zmm30, %zmm25, %zmm31 + 1 4 0.50 vsubpd %zmm28, %zmm23, %zmm3 + 1 4 0.50 vmulpd %zmm31, %zmm31, %zmm15 + 1 4 0.50 vfmadd231pd %zmm12, %zmm12, %zmm15 + 1 4 0.50 vfmadd231pd %zmm14, %zmm14, %zmm15 + 3 4 2.00 vrcp14pd %zmm15, %zmm16 + 1 4 1.00 vcmpltpd %zmm0, %zmm15, %k1 + 1 4 0.50 vmulpd %zmm20, %zmm16, %zmm15 + 1 4 0.50 vmulpd %zmm16, %zmm16, %zmm18 + 1 4 0.50 vmulpd %zmm15, %zmm18, %zmm15 + 2 8 0.50 * vmovupd 512(%rsp), %zmm18 + 1 4 0.50 vsubpd %zmm29, %zmm18, %zmm18 + 1 4 0.50 vmulpd %zmm16, %zmm1, %zmm16 + 1 4 0.50 vmulpd %zmm15, %zmm16, %zmm16 + 1 4 0.50 vaddpd %zmm2, %zmm15, %zmm15 + 1 4 0.50 vmulpd %zmm15, %zmm16, %zmm15 + 2 8 0.50 * vmovupd 448(%rsp), %zmm16 + 1 4 0.50 vsubpd %zmm30, %zmm16, %zmm16 + 1 4 0.50 vfmadd231pd %zmm14, %zmm15, %zmm19 {%k1} + 1 4 0.50 vmulpd %zmm16, %zmm16, %zmm14 + 1 4 0.50 vfmadd231pd %zmm18, %zmm18, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm3, %zmm14 + 1 4 1.00 vcmpltpd %zmm0, %zmm14, %k2 + 3 4 2.00 vrcp14pd %zmm14, %zmm14 + 1 4 0.50 vfmadd231pd %zmm12, %zmm15, %zmm11 {%k1} + 1 4 0.50 vfmadd231pd %zmm31, %zmm15, %zmm7 {%k1} + 1 4 0.50 vmulpd %zmm20, %zmm14, %zmm12 + 1 4 0.50 vmulpd %zmm14, %zmm14, %zmm15 + 1 4 0.50 vmulpd %zmm12, %zmm15, %zmm12 + 1 4 0.50 vsubpd %zmm28, %zmm24, %zmm15 + 1 4 0.50 vmulpd %zmm14, %zmm1, %zmm14 + 1 4 0.50 vmulpd %zmm12, %zmm14, %zmm14 + 1 4 0.50 vaddpd %zmm2, %zmm12, %zmm12 + 1 4 0.50 vmulpd %zmm12, %zmm14, %zmm12 + 1 4 0.50 vsubpd %zmm29, %zmm22, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm12, %zmm17 {%k2} + 1 4 0.50 vsubpd %zmm30, %zmm27, %zmm3 + 1 4 0.50 vfmadd231pd %zmm18, %zmm12, %zmm9 {%k2} + 1 4 0.50 vmulpd %zmm3, %zmm3, %zmm18 + 1 4 0.50 vfmadd231pd %zmm14, %zmm14, %zmm18 + 1 4 0.50 vfmadd231pd %zmm15, %zmm15, %zmm18 + 1 4 1.00 vcmpltpd %zmm0, %zmm18, %k1 + 3 4 2.00 vrcp14pd %zmm18, %zmm18 + 1 4 0.50 vfmadd231pd %zmm16, %zmm12, %zmm5 {%k2} + 1 4 0.50 vmulpd %zmm20, %zmm18, %zmm12 + 1 4 0.50 vmulpd %zmm18, %zmm18, %zmm16 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm12 + 1 4 0.50 vmulpd %zmm18, %zmm1, %zmm16 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm16 + 1 4 0.50 vaddpd %zmm2, %zmm12, %zmm12 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm12 + 1 4 0.50 vfmadd231pd %zmm15, %zmm12, %zmm21 {%k1} + 2 8 0.50 * vmovupd 576(%rsp), %zmm15 + 1 4 0.50 vsubpd %zmm28, %zmm15, %zmm15 + 2 8 0.50 * vmovupd 128(%rsp), %zmm16 + 1 4 0.50 vsubpd %zmm29, %zmm16, %zmm16 + 2 8 0.50 * vmovupd 384(%rsp), %zmm18 + 1 4 0.50 vsubpd %zmm30, %zmm18, %zmm18 + 1 4 0.50 vfmadd231pd %zmm14, %zmm12, %zmm10 {%k1} + 1 4 0.50 vmulpd %zmm18, %zmm18, %zmm14 + 1 4 0.50 vfmadd231pd %zmm16, %zmm16, %zmm14 + 1 4 0.50 vfmadd231pd %zmm15, %zmm15, %zmm14 + 1 4 1.00 vcmpltpd %zmm0, %zmm14, %k2 + 3 4 2.00 vrcp14pd %zmm14, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm12, %zmm6 {%k1} + 1 4 0.50 vmulpd %zmm20, %zmm14, %zmm3 + 1 4 0.50 vmulpd %zmm14, %zmm14, %zmm12 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm3 + 1 4 0.50 vmulpd %zmm14, %zmm1, %zmm12 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm12 + 1 4 0.50 vaddpd %zmm2, %zmm3, %zmm3 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm3 + 1 4 0.50 vfmadd231pd %zmm15, %zmm3, %zmm13 {%k2} + 1 4 0.50 vfmadd231pd %zmm16, %zmm3, %zmm8 {%k2} + 1 4 0.50 vfmadd231pd %zmm18, %zmm3, %zmm4 {%k2} + 1 1 0.25 incq %rcx + 1 1 0.25 cmpq %rcx, %r11 + 1 1 0.50 jne .LBB5_11 + 1 1 0.50 jmp .LBB5_12 + + +Resources: +[0] - SKXDivider +[1] - SKXFPDivider +[2] - SKXPort0 +[3] - SKXPort1 +[4] - SKXPort2 +[5] - SKXPort3 +[6] - SKXPort4 +[7] - SKXPort5 +[8] - SKXPort6 +[9] - SKXPort7 + + +Resource pressure per iteration: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] + - - 40.89 9.09 5.00 5.00 - 40.21 4.81 - + +Resource pressure by instruction: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: + - - - - - 1.00 - - - - movslq (%rdx,%rcx,4), %rax + - - - 0.99 - - - 0.01 - - leaq (%rax,%rax,2), %rax + - - - - - - - - 1.00 - shlq $6, %rax + - - - 1.00 - 1.00 - - - - vmovapd (%rdi,%rax), %zmm28 + - - 0.35 0.64 1.00 - - 0.01 - - vmovapd 64(%rdi,%rax), %zmm29 + - - - 0.83 - 1.00 - 0.17 - - vmovapd 128(%rdi,%rax), %zmm30 + - - - 0.99 1.00 - - 0.01 - - vmovupd 64(%rsp), %zmm3 + - - 0.17 - - - - 0.83 - - vsubpd %zmm28, %zmm3, %zmm14 + - - 0.17 - - - - 0.83 - - vsubpd %zmm29, %zmm26, %zmm12 + - - 0.17 - - - - 0.83 - - vsubpd %zmm30, %zmm25, %zmm31 + - - 0.32 - - - - 0.68 - - vsubpd %zmm28, %zmm23, %zmm3 + - - 0.49 - - - - 0.51 - - vmulpd %zmm31, %zmm31, %zmm15 + - - 0.66 - - - - 0.34 - - vfmadd231pd %zmm12, %zmm12, %zmm15 + - - 0.35 - - - - 0.65 - - vfmadd231pd %zmm14, %zmm14, %zmm15 + - - 2.00 - - - - 1.00 - - vrcp14pd %zmm15, %zmm16 + - - - - - - - 1.00 - - vcmpltpd %zmm0, %zmm15, %k1 + - - 0.66 - - - - 0.34 - - vmulpd %zmm20, %zmm16, %zmm15 + - - 0.34 - - - - 0.66 - - vmulpd %zmm16, %zmm16, %zmm18 + - - 0.50 - - - - 0.50 - - vmulpd %zmm15, %zmm18, %zmm15 + - - 0.33 0.67 0.99 0.01 - - - - vmovupd 512(%rsp), %zmm18 + - - 0.17 - - - - 0.83 - - vsubpd %zmm29, %zmm18, %zmm18 + - - 0.66 - - - - 0.34 - - vmulpd %zmm16, %zmm1, %zmm16 + - - 0.33 - - - - 0.67 - - vmulpd %zmm15, %zmm16, %zmm16 + - - 0.67 - - - - 0.33 - - vaddpd %zmm2, %zmm15, %zmm15 + - - 0.67 - - - - 0.33 - - vmulpd %zmm15, %zmm16, %zmm15 + - - 0.01 0.99 0.01 0.99 - - - - vmovupd 448(%rsp), %zmm16 + - - 0.02 - - - - 0.98 - - vsubpd %zmm30, %zmm16, %zmm16 + - - 1.00 - - - - - - - vfmadd231pd %zmm14, %zmm15, %zmm19 {%k1} + - - 0.65 - - - - 0.35 - - vmulpd %zmm16, %zmm16, %zmm14 + - - 0.66 - - - - 0.34 - - vfmadd231pd %zmm18, %zmm18, %zmm14 + - - 0.50 - - - - 0.50 - - vfmadd231pd %zmm3, %zmm3, %zmm14 + - - - - - - - 1.00 - - vcmpltpd %zmm0, %zmm14, %k2 + - - 2.00 - - - - 1.00 - - vrcp14pd %zmm14, %zmm14 + - - - - - - - 1.00 - - vfmadd231pd %zmm12, %zmm15, %zmm11 {%k1} + - - 1.00 - - - - - - - vfmadd231pd %zmm31, %zmm15, %zmm7 {%k1} + - - 0.67 - - - - 0.33 - - vmulpd %zmm20, %zmm14, %zmm12 + - - 0.33 - - - - 0.67 - - vmulpd %zmm14, %zmm14, %zmm15 + - - 0.49 - - - - 0.51 - - vmulpd %zmm12, %zmm15, %zmm12 + - - 0.49 - - - - 0.51 - - vsubpd %zmm28, %zmm24, %zmm15 + - - 0.67 - - - - 0.33 - - vmulpd %zmm14, %zmm1, %zmm14 + - - 0.83 - - - - 0.17 - - vmulpd %zmm12, %zmm14, %zmm14 + - - 0.17 - - - - 0.83 - - vaddpd %zmm2, %zmm12, %zmm12 + - - 0.67 - - - - 0.33 - - vmulpd %zmm12, %zmm14, %zmm12 + - - 0.34 - - - - 0.66 - - vsubpd %zmm29, %zmm22, %zmm14 + - - 0.66 - - - - 0.34 - - vfmadd231pd %zmm3, %zmm12, %zmm17 {%k2} + - - 0.49 - - - - 0.51 - - vsubpd %zmm30, %zmm27, %zmm3 + - - 0.34 - - - - 0.66 - - vfmadd231pd %zmm18, %zmm12, %zmm9 {%k2} + - - 0.19 - - - - 0.81 - - vmulpd %zmm3, %zmm3, %zmm18 + - - 0.32 - - - - 0.68 - - vfmadd231pd %zmm14, %zmm14, %zmm18 + - - 0.82 - - - - 0.18 - - vfmadd231pd %zmm15, %zmm15, %zmm18 + - - - - - - - 1.00 - - vcmpltpd %zmm0, %zmm18, %k1 + - - 2.00 - - - - 1.00 - - vrcp14pd %zmm18, %zmm18 + - - 0.66 - - - - 0.34 - - vfmadd231pd %zmm16, %zmm12, %zmm5 {%k2} + - - 0.82 - - - - 0.18 - - vmulpd %zmm20, %zmm18, %zmm12 + - - 0.18 - - - - 0.82 - - vmulpd %zmm18, %zmm18, %zmm16 + - - 0.68 - - - - 0.32 - - vmulpd %zmm12, %zmm16, %zmm12 + - - 0.65 - - - - 0.35 - - vmulpd %zmm18, %zmm1, %zmm16 + - - 0.83 - - - - 0.17 - - vmulpd %zmm12, %zmm16, %zmm16 + - - 0.17 - - - - 0.83 - - vaddpd %zmm2, %zmm12, %zmm12 + - - 0.83 - - - - 0.17 - - vmulpd %zmm12, %zmm16, %zmm12 + - - 0.65 - - - - 0.35 - - vfmadd231pd %zmm15, %zmm12, %zmm21 {%k1} + - - - 1.00 1.00 - - - - - vmovupd 576(%rsp), %zmm15 + - - 0.33 - - - - 0.67 - - vsubpd %zmm28, %zmm15, %zmm15 + - - 0.01 0.99 - 1.00 - - - - vmovupd 128(%rsp), %zmm16 + - - 0.66 - - - - 0.34 - - vsubpd %zmm29, %zmm16, %zmm16 + - - - 0.99 1.00 - - 0.01 - - vmovupd 384(%rsp), %zmm18 + - - 0.49 - - - - 0.51 - - vsubpd %zmm30, %zmm18, %zmm18 + - - 0.35 - - - - 0.65 - - vfmadd231pd %zmm14, %zmm12, %zmm10 {%k1} + - - 0.19 - - - - 0.81 - - vmulpd %zmm18, %zmm18, %zmm14 + - - 0.35 - - - - 0.65 - - vfmadd231pd %zmm16, %zmm16, %zmm14 + - - 0.83 - - - - 0.17 - - vfmadd231pd %zmm15, %zmm15, %zmm14 + - - - - - - - 1.00 - - vcmpltpd %zmm0, %zmm14, %k2 + - - 2.00 - - - - 1.00 - - vrcp14pd %zmm14, %zmm14 + - - 0.65 - - - - 0.35 - - vfmadd231pd %zmm3, %zmm12, %zmm6 {%k1} + - - 0.51 - - - - 0.49 - - vmulpd %zmm20, %zmm14, %zmm3 + - - 0.33 - - - - 0.67 - - vmulpd %zmm14, %zmm14, %zmm12 + - - 0.36 - - - - 0.64 - - vmulpd %zmm3, %zmm12, %zmm3 + - - 0.50 - - - - 0.50 - - vmulpd %zmm14, %zmm1, %zmm12 + - - 0.51 - - - - 0.49 - - vmulpd %zmm3, %zmm12, %zmm12 + - - 0.49 - - - - 0.51 - - vaddpd %zmm2, %zmm3, %zmm3 + - - 0.52 - - - - 0.48 - - vmulpd %zmm3, %zmm12, %zmm3 + - - 0.82 - - - - 0.18 - - vfmadd231pd %zmm15, %zmm3, %zmm13 {%k2} + - - 0.18 - - - - 0.82 - - vfmadd231pd %zmm16, %zmm3, %zmm8 {%k2} + - - 0.82 - - - - 0.18 - - vfmadd231pd %zmm18, %zmm3, %zmm4 {%k2} + - - - - - - - - 1.00 - incq %rcx + - - - - - - - - 1.00 - cmpq %rcx, %r11 + - - - - - - - - 1.00 - jne .LBB5_11 + - - 0.19 - - - - - 0.81 - jmp .LBB5_12 diff --git a/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-icx.out b/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-icx.out new file mode 100644 index 0000000..4c64dce --- /dev/null +++ b/static_analysis/rafael/analyses/gromacs-icx-avx512-dp-mca-icx.out @@ -0,0 +1,222 @@ + +[0] Code Region + +Iterations: 100 +Instructions: 8800 +Total Cycles: 4293 +Total uOps: 10500 + +Dispatch Width: 6 +uOps Per Cycle: 2.45 +IPC: 2.05 +Block RThroughput: 32.0 + + +Instruction Info: +[1]: #uOps +[2]: Latency +[3]: RThroughput +[4]: MayLoad +[5]: MayStore +[6]: HasSideEffects (U) + +[1] [2] [3] [4] [5] [6] Instructions: + 1 5 0.50 * movslq (%rdx,%rcx,4), %rax + 1 1 0.50 leaq (%rax,%rax,2), %rax + 1 1 0.50 shlq $6, %rax + 2 8 0.50 * vmovapd (%rdi,%rax), %zmm28 + 2 8 0.50 * vmovapd 64(%rdi,%rax), %zmm29 + 2 8 0.50 * vmovapd 128(%rdi,%rax), %zmm30 + 2 8 0.50 * vmovupd 64(%rsp), %zmm3 + 1 4 0.50 vsubpd %zmm28, %zmm3, %zmm14 + 1 4 0.50 vsubpd %zmm29, %zmm26, %zmm12 + 1 4 0.50 vsubpd %zmm30, %zmm25, %zmm31 + 1 4 0.50 vsubpd %zmm28, %zmm23, %zmm3 + 1 4 0.50 vmulpd %zmm31, %zmm31, %zmm15 + 1 4 0.50 vfmadd231pd %zmm12, %zmm12, %zmm15 + 1 4 0.50 vfmadd231pd %zmm14, %zmm14, %zmm15 + 3 4 2.00 vrcp14pd %zmm15, %zmm16 + 1 4 1.00 vcmpltpd %zmm0, %zmm15, %k1 + 1 4 0.50 vmulpd %zmm20, %zmm16, %zmm15 + 1 4 0.50 vmulpd %zmm16, %zmm16, %zmm18 + 1 4 0.50 vmulpd %zmm15, %zmm18, %zmm15 + 2 8 0.50 * vmovupd 512(%rsp), %zmm18 + 1 4 0.50 vsubpd %zmm29, %zmm18, %zmm18 + 1 4 0.50 vmulpd %zmm16, %zmm1, %zmm16 + 1 4 0.50 vmulpd %zmm15, %zmm16, %zmm16 + 1 4 0.50 vaddpd %zmm2, %zmm15, %zmm15 + 1 4 0.50 vmulpd %zmm15, %zmm16, %zmm15 + 2 8 0.50 * vmovupd 448(%rsp), %zmm16 + 1 4 0.50 vsubpd %zmm30, %zmm16, %zmm16 + 1 4 0.50 vfmadd231pd %zmm14, %zmm15, %zmm19 {%k1} + 1 4 0.50 vmulpd %zmm16, %zmm16, %zmm14 + 1 4 0.50 vfmadd231pd %zmm18, %zmm18, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm3, %zmm14 + 1 4 1.00 vcmpltpd %zmm0, %zmm14, %k2 + 3 4 2.00 vrcp14pd %zmm14, %zmm14 + 1 4 0.50 vfmadd231pd %zmm12, %zmm15, %zmm11 {%k1} + 1 4 0.50 vfmadd231pd %zmm31, %zmm15, %zmm7 {%k1} + 1 4 0.50 vmulpd %zmm20, %zmm14, %zmm12 + 1 4 0.50 vmulpd %zmm14, %zmm14, %zmm15 + 1 4 0.50 vmulpd %zmm12, %zmm15, %zmm12 + 1 4 0.50 vsubpd %zmm28, %zmm24, %zmm15 + 1 4 0.50 vmulpd %zmm14, %zmm1, %zmm14 + 1 4 0.50 vmulpd %zmm12, %zmm14, %zmm14 + 1 4 0.50 vaddpd %zmm2, %zmm12, %zmm12 + 1 4 0.50 vmulpd %zmm12, %zmm14, %zmm12 + 1 4 0.50 vsubpd %zmm29, %zmm22, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm12, %zmm17 {%k2} + 1 4 0.50 vsubpd %zmm30, %zmm27, %zmm3 + 1 4 0.50 vfmadd231pd %zmm18, %zmm12, %zmm9 {%k2} + 1 4 0.50 vmulpd %zmm3, %zmm3, %zmm18 + 1 4 0.50 vfmadd231pd %zmm14, %zmm14, %zmm18 + 1 4 0.50 vfmadd231pd %zmm15, %zmm15, %zmm18 + 1 4 1.00 vcmpltpd %zmm0, %zmm18, %k1 + 3 4 2.00 vrcp14pd %zmm18, %zmm18 + 1 4 0.50 vfmadd231pd %zmm16, %zmm12, %zmm5 {%k2} + 1 4 0.50 vmulpd %zmm20, %zmm18, %zmm12 + 1 4 0.50 vmulpd %zmm18, %zmm18, %zmm16 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm12 + 1 4 0.50 vmulpd %zmm18, %zmm1, %zmm16 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm16 + 1 4 0.50 vaddpd %zmm2, %zmm12, %zmm12 + 1 4 0.50 vmulpd %zmm12, %zmm16, %zmm12 + 1 4 0.50 vfmadd231pd %zmm15, %zmm12, %zmm21 {%k1} + 2 8 0.50 * vmovupd 576(%rsp), %zmm15 + 1 4 0.50 vsubpd %zmm28, %zmm15, %zmm15 + 2 8 0.50 * vmovupd 128(%rsp), %zmm16 + 1 4 0.50 vsubpd %zmm29, %zmm16, %zmm16 + 2 8 0.50 * vmovupd 384(%rsp), %zmm18 + 1 4 0.50 vsubpd %zmm30, %zmm18, %zmm18 + 1 4 0.50 vfmadd231pd %zmm14, %zmm12, %zmm10 {%k1} + 1 4 0.50 vmulpd %zmm18, %zmm18, %zmm14 + 1 4 0.50 vfmadd231pd %zmm16, %zmm16, %zmm14 + 1 4 0.50 vfmadd231pd %zmm15, %zmm15, %zmm14 + 1 4 1.00 vcmpltpd %zmm0, %zmm14, %k2 + 3 4 2.00 vrcp14pd %zmm14, %zmm14 + 1 4 0.50 vfmadd231pd %zmm3, %zmm12, %zmm6 {%k1} + 1 4 0.50 vmulpd %zmm20, %zmm14, %zmm3 + 1 4 0.50 vmulpd %zmm14, %zmm14, %zmm12 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm3 + 1 4 0.50 vmulpd %zmm14, %zmm1, %zmm12 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm12 + 1 4 0.50 vaddpd %zmm2, %zmm3, %zmm3 + 1 4 0.50 vmulpd %zmm3, %zmm12, %zmm3 + 1 4 0.50 vfmadd231pd %zmm15, %zmm3, %zmm13 {%k2} + 1 4 0.50 vfmadd231pd %zmm16, %zmm3, %zmm8 {%k2} + 1 4 0.50 vfmadd231pd %zmm18, %zmm3, %zmm4 {%k2} + 1 1 0.25 incq %rcx + 1 1 0.25 cmpq %rcx, %r11 + 1 1 0.50 jne .LBB5_11 + 1 1 0.50 jmp .LBB5_12 + + +Resources: +[0] - ICXDivider +[1] - ICXFPDivider +[2] - ICXPort0 +[3] - ICXPort1 +[4] - ICXPort2 +[5] - ICXPort3 +[6] - ICXPort4 +[7] - ICXPort5 +[8] - ICXPort6 +[9] - ICXPort7 +[10] - ICXPort8 +[11] - ICXPort9 + + +Resource pressure per iteration: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] + - - 40.89 9.09 5.00 5.00 - 40.21 4.81 - - - + +Resource pressure by instruction: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: + - - - - - 1.00 - - - - - - movslq (%rdx,%rcx,4), %rax + - - - 0.99 - - - 0.01 - - - - leaq (%rax,%rax,2), %rax + - - - - - - - - 1.00 - - - shlq $6, %rax + - - - 1.00 - 1.00 - - - - - - vmovapd (%rdi,%rax), %zmm28 + - - 0.35 0.64 1.00 - - 0.01 - - - - vmovapd 64(%rdi,%rax), %zmm29 + - - - 0.83 - 1.00 - 0.17 - - - - vmovapd 128(%rdi,%rax), %zmm30 + - - - 0.99 1.00 - - 0.01 - - - - vmovupd 64(%rsp), %zmm3 + - - 0.17 - - - - 0.83 - - - - vsubpd %zmm28, %zmm3, %zmm14 + - - 0.17 - - - - 0.83 - - - - vsubpd %zmm29, %zmm26, %zmm12 + - - 0.17 - - - - 0.83 - - - - vsubpd %zmm30, %zmm25, %zmm31 + - - 0.32 - - - - 0.68 - - - - vsubpd %zmm28, %zmm23, %zmm3 + - - 0.49 - - - - 0.51 - - - - vmulpd %zmm31, %zmm31, %zmm15 + - - 0.66 - - - - 0.34 - - - - vfmadd231pd %zmm12, %zmm12, %zmm15 + - - 0.35 - - - - 0.65 - - - - vfmadd231pd %zmm14, %zmm14, %zmm15 + - - 2.00 - - - - 1.00 - - - - vrcp14pd %zmm15, %zmm16 + - - - - - - - 1.00 - - - - vcmpltpd %zmm0, %zmm15, %k1 + - - 0.66 - - - - 0.34 - - - - vmulpd %zmm20, %zmm16, %zmm15 + - - 0.34 - - - - 0.66 - - - - vmulpd %zmm16, %zmm16, %zmm18 + - - 0.50 - - - - 0.50 - - - - vmulpd %zmm15, %zmm18, %zmm15 + - - 0.33 0.67 0.99 0.01 - - - - - - vmovupd 512(%rsp), %zmm18 + - - 0.17 - - - - 0.83 - - - - vsubpd %zmm29, %zmm18, %zmm18 + - - 0.66 - - - - 0.34 - - - - vmulpd %zmm16, %zmm1, %zmm16 + - - 0.33 - - - - 0.67 - - - - vmulpd %zmm15, %zmm16, %zmm16 + - - 0.67 - - - - 0.33 - - - - vaddpd %zmm2, %zmm15, %zmm15 + - - 0.67 - - - - 0.33 - - - - vmulpd %zmm15, %zmm16, %zmm15 + - - 0.01 0.99 0.01 0.99 - - - - - - vmovupd 448(%rsp), %zmm16 + - - 0.02 - - - - 0.98 - - - - vsubpd %zmm30, %zmm16, %zmm16 + - - 1.00 - - - - - - - - - vfmadd231pd %zmm14, %zmm15, %zmm19 {%k1} + - - 0.65 - - - - 0.35 - - - - vmulpd %zmm16, %zmm16, %zmm14 + - - 0.66 - - - - 0.34 - - - - vfmadd231pd %zmm18, %zmm18, %zmm14 + - - 0.50 - - - - 0.50 - - - - vfmadd231pd %zmm3, %zmm3, %zmm14 + - - - - - - - 1.00 - - - - vcmpltpd %zmm0, %zmm14, %k2 + - - 2.00 - - - - 1.00 - - - - vrcp14pd %zmm14, %zmm14 + - - - - - - - 1.00 - - - - vfmadd231pd %zmm12, %zmm15, %zmm11 {%k1} + - - 1.00 - - - - - - - - - vfmadd231pd %zmm31, %zmm15, %zmm7 {%k1} + - - 0.67 - - - - 0.33 - - - - vmulpd %zmm20, %zmm14, %zmm12 + - - 0.33 - - - - 0.67 - - - - vmulpd %zmm14, %zmm14, %zmm15 + - - 0.49 - - - - 0.51 - - - - vmulpd %zmm12, %zmm15, %zmm12 + - - 0.49 - - - - 0.51 - - - - vsubpd %zmm28, %zmm24, %zmm15 + - - 0.67 - - - - 0.33 - - - - vmulpd %zmm14, %zmm1, %zmm14 + - - 0.83 - - - - 0.17 - - - - vmulpd %zmm12, %zmm14, %zmm14 + - - 0.17 - - - - 0.83 - - - - vaddpd %zmm2, %zmm12, %zmm12 + - - 0.67 - - - - 0.33 - - - - vmulpd %zmm12, %zmm14, %zmm12 + - - 0.34 - - - - 0.66 - - - - vsubpd %zmm29, %zmm22, %zmm14 + - - 0.66 - - - - 0.34 - - - - vfmadd231pd %zmm3, %zmm12, %zmm17 {%k2} + - - 0.49 - - - - 0.51 - - - - vsubpd %zmm30, %zmm27, %zmm3 + - - 0.34 - - - - 0.66 - - - - vfmadd231pd %zmm18, %zmm12, %zmm9 {%k2} + - - 0.19 - - - - 0.81 - - - - vmulpd %zmm3, %zmm3, %zmm18 + - - 0.32 - - - - 0.68 - - - - vfmadd231pd %zmm14, %zmm14, %zmm18 + - - 0.82 - - - - 0.18 - - - - vfmadd231pd %zmm15, %zmm15, %zmm18 + - - - - - - - 1.00 - - - - vcmpltpd %zmm0, %zmm18, %k1 + - - 2.00 - - - - 1.00 - - - - vrcp14pd %zmm18, %zmm18 + - - 0.66 - - - - 0.34 - - - - vfmadd231pd %zmm16, %zmm12, %zmm5 {%k2} + - - 0.82 - - - - 0.18 - - - - vmulpd %zmm20, %zmm18, %zmm12 + - - 0.18 - - - - 0.82 - - - - vmulpd %zmm18, %zmm18, %zmm16 + - - 0.68 - - - - 0.32 - - - - vmulpd %zmm12, %zmm16, %zmm12 + - - 0.65 - - - - 0.35 - - - - vmulpd %zmm18, %zmm1, %zmm16 + - - 0.83 - - - - 0.17 - - - - vmulpd %zmm12, %zmm16, %zmm16 + - - 0.17 - - - - 0.83 - - - - vaddpd %zmm2, %zmm12, %zmm12 + - - 0.83 - - - - 0.17 - - - - vmulpd %zmm12, %zmm16, %zmm12 + - - 0.65 - - - - 0.35 - - - - vfmadd231pd %zmm15, %zmm12, %zmm21 {%k1} + - - - 1.00 1.00 - - - - - - - vmovupd 576(%rsp), %zmm15 + - - 0.33 - - - - 0.67 - - - - vsubpd %zmm28, %zmm15, %zmm15 + - - 0.01 0.99 - 1.00 - - - - - - vmovupd 128(%rsp), %zmm16 + - - 0.66 - - - - 0.34 - - - - vsubpd %zmm29, %zmm16, %zmm16 + - - - 0.99 1.00 - - 0.01 - - - - vmovupd 384(%rsp), %zmm18 + - - 0.49 - - - - 0.51 - - - - vsubpd %zmm30, %zmm18, %zmm18 + - - 0.35 - - - - 0.65 - - - - vfmadd231pd %zmm14, %zmm12, %zmm10 {%k1} + - - 0.19 - - - - 0.81 - - - - vmulpd %zmm18, %zmm18, %zmm14 + - - 0.35 - - - - 0.65 - - - - vfmadd231pd %zmm16, %zmm16, %zmm14 + - - 0.83 - - - - 0.17 - - - - vfmadd231pd %zmm15, %zmm15, %zmm14 + - - - - - - - 1.00 - - - - vcmpltpd %zmm0, %zmm14, %k2 + - - 2.00 - - - - 1.00 - - - - vrcp14pd %zmm14, %zmm14 + - - 0.65 - - - - 0.35 - - - - vfmadd231pd %zmm3, %zmm12, %zmm6 {%k1} + - - 0.51 - - - - 0.49 - - - - vmulpd %zmm20, %zmm14, %zmm3 + - - 0.33 - - - - 0.67 - - - - vmulpd %zmm14, %zmm14, %zmm12 + - - 0.36 - - - - 0.64 - - - - vmulpd %zmm3, %zmm12, %zmm3 + - - 0.50 - - - - 0.50 - - - - vmulpd %zmm14, %zmm1, %zmm12 + - - 0.51 - - - - 0.49 - - - - vmulpd %zmm3, %zmm12, %zmm12 + - - 0.49 - - - - 0.51 - - - - vaddpd %zmm2, %zmm3, %zmm3 + - - 0.52 - - - - 0.48 - - - - vmulpd %zmm3, %zmm12, %zmm3 + - - 0.82 - - - - 0.18 - - - - vfmadd231pd %zmm15, %zmm3, %zmm13 {%k2} + - - 0.18 - - - - 0.82 - - - - vfmadd231pd %zmm16, %zmm3, %zmm8 {%k2} + - - 0.82 - - - - 0.18 - - - - vfmadd231pd %zmm18, %zmm3, %zmm4 {%k2} + - - - - - - - - 1.00 - - - incq %rcx + - - - - - - - - 1.00 - - - cmpq %rcx, %r11 + - - - - - - - - 1.00 - - - jne .LBB5_11 + - - 0.19 - - - - - 0.81 - - - jmp .LBB5_12 diff --git a/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-csx.out b/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-csx.out new file mode 100644 index 0000000..1fd23b3 --- /dev/null +++ b/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-csx.out @@ -0,0 +1,138 @@ + +[0] Code Region + +Iterations: 100 +Instructions: 4700 +Total Cycles: 2286 +Total uOps: 5400 + +Dispatch Width: 6 +uOps Per Cycle: 2.36 +IPC: 2.06 +Block RThroughput: 16.0 + + +Instruction Info: +[1]: #uOps +[2]: Latency +[3]: RThroughput +[4]: MayLoad +[5]: MayStore +[6]: HasSideEffects (U) + +[1] [2] [3] [4] [5] [6] Instructions: + 1 5 0.50 * movslq (%rsi,%rdx,4), %rdi + 1 1 0.50 leaq (%rdi,%rdi,2), %rdi + 1 1 0.50 shlq $5, %rdi + 2 8 0.50 * vmovupd (%rcx,%rdi), %zmm16 + 2 8 0.50 * vinsertf64x4 $1, (%rcx,%rdi), %zmm16, %zmm17 + 2 8 0.50 * vbroadcastf64x4 64(%rcx,%rdi), %zmm18 + 1 3 1.00 vshuff64x2 $238, %zmm16, %zmm16, %zmm16 + 1 4 0.50 vsubps %zmm17, %zmm6, %zmm19 + 1 4 0.50 vsubps %zmm16, %zmm10, %zmm20 + 1 4 0.50 vsubps %zmm18, %zmm12, %zmm21 + 1 4 0.50 vsubps %zmm17, %zmm9, %zmm17 + 1 4 0.50 vsubps %zmm18, %zmm14, %zmm18 + 1 4 0.50 vsubps %zmm16, %zmm11, %zmm16 + 1 4 0.50 vmulps %zmm21, %zmm21, %zmm22 + 1 4 0.50 vfmadd231ps %zmm20, %zmm20, %zmm22 + 1 4 0.50 vfmadd231ps %zmm19, %zmm19, %zmm22 + 1 4 0.50 vmulps %zmm18, %zmm18, %zmm23 + 1 4 0.50 vfmadd231ps %zmm16, %zmm16, %zmm23 + 1 4 0.50 vfmadd231ps %zmm17, %zmm17, %zmm23 + 3 4 2.00 vrcp14ps %zmm22, %zmm24 + 3 4 2.00 vrcp14ps %zmm23, %zmm25 + 1 4 1.00 vcmpltps %zmm0, %zmm22, %k2 + 1 4 1.00 vcmpltps %zmm0, %zmm23, %k1 + 1 4 0.50 vmulps %zmm29, %zmm24, %zmm22 + 1 4 0.50 vmulps %zmm24, %zmm24, %zmm23 + 1 4 0.50 vmulps %zmm29, %zmm25, %zmm26 + 1 4 0.50 vmulps %zmm22, %zmm23, %zmm22 + 1 4 0.50 vmulps %zmm25, %zmm25, %zmm23 + 1 4 0.50 vmulps %zmm26, %zmm23, %zmm23 + 1 4 0.50 vaddps %zmm2, %zmm22, %zmm26 + 1 4 0.50 vmulps %zmm24, %zmm1, %zmm24 + 1 4 0.50 vmulps %zmm22, %zmm24, %zmm22 + 1 4 0.50 vmulps %zmm26, %zmm22, %zmm22 + 1 4 0.50 vaddps %zmm2, %zmm23, %zmm24 + 1 4 0.50 vmulps %zmm25, %zmm1, %zmm25 + 1 4 0.50 vmulps %zmm23, %zmm25, %zmm23 + 1 4 0.50 vmulps %zmm24, %zmm23, %zmm23 + 1 4 0.50 vfmadd231ps %zmm19, %zmm22, %zmm13 {%k2} + 1 4 0.50 vfmadd231ps %zmm20, %zmm22, %zmm8 {%k2} + 1 4 0.50 vfmadd231ps %zmm21, %zmm22, %zmm5 {%k2} + 1 4 0.50 vfmadd231ps %zmm17, %zmm23, %zmm15 {%k1} + 1 4 0.50 vfmadd231ps %zmm16, %zmm23, %zmm7 {%k1} + 1 4 0.50 vfmadd231ps %zmm18, %zmm23, %zmm4 {%k1} + 1 1 0.25 incq %rdx + 1 1 0.25 cmpq %rdx, %r12 + 1 1 0.50 jne .LBB2_11 + 1 1 0.50 jmp .LBB2_12 + + +Resources: +[0] - SKXDivider +[1] - SKXFPDivider +[2] - SKXPort0 +[3] - SKXPort1 +[4] - SKXPort2 +[5] - SKXPort3 +[6] - SKXPort4 +[7] - SKXPort5 +[8] - SKXPort6 +[9] - SKXPort7 + + +Resource pressure per iteration: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] + - - 20.53 3.97 2.00 2.00 - 20.53 4.97 - + +Resource pressure by instruction: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: + - - - - - 1.00 - - - - movslq (%rsi,%rdx,4), %rdi + - - - 0.98 - - - 0.02 - - leaq (%rdi,%rdi,2), %rdi + - - - - - - - - 1.00 - shlq $5, %rdi + - - - 1.00 1.00 - - - - - vmovupd (%rcx,%rdi), %zmm16 + - - - 0.99 0.01 0.99 - 0.01 - - vinsertf64x4 $1, (%rcx,%rdi), %zmm16, %zmm17 + - - 0.01 0.98 0.99 0.01 - 0.01 - - vbroadcastf64x4 64(%rcx,%rdi), %zmm18 + - - - - - - - 1.00 - - vshuff64x2 $238, %zmm16, %zmm16, %zmm16 + - - 0.01 - - - - 0.99 - - vsubps %zmm17, %zmm6, %zmm19 + - - 0.50 - - - - 0.50 - - vsubps %zmm16, %zmm10, %zmm20 + - - 0.02 - - - - 0.98 - - vsubps %zmm18, %zmm12, %zmm21 + - - 0.49 - - - - 0.51 - - vsubps %zmm17, %zmm9, %zmm17 + - - 0.02 - - - - 0.98 - - vsubps %zmm18, %zmm14, %zmm18 + - - 0.98 - - - - 0.02 - - vsubps %zmm16, %zmm11, %zmm16 + - - 0.01 - - - - 0.99 - - vmulps %zmm21, %zmm21, %zmm22 + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm20, %zmm20, %zmm22 + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm19, %zmm19, %zmm22 + - - - - - - - 1.00 - - vmulps %zmm18, %zmm18, %zmm23 + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm16, %zmm16, %zmm23 + - - 0.01 - - - - 0.99 - - vfmadd231ps %zmm17, %zmm17, %zmm23 + - - 2.00 - - - - 1.00 - - vrcp14ps %zmm22, %zmm24 + - - 2.00 - - - - 1.00 - - vrcp14ps %zmm23, %zmm25 + - - - - - - - 1.00 - - vcmpltps %zmm0, %zmm22, %k2 + - - - - - - - 1.00 - - vcmpltps %zmm0, %zmm23, %k1 + - - 1.00 - - - - - - - vmulps %zmm29, %zmm24, %zmm22 + - - - - - - - 1.00 - - vmulps %zmm24, %zmm24, %zmm23 + - - 0.99 - - - - 0.01 - - vmulps %zmm29, %zmm25, %zmm26 + - - 0.51 - - - - 0.49 - - vmulps %zmm22, %zmm23, %zmm22 + - - 0.01 - - - - 0.99 - - vmulps %zmm25, %zmm25, %zmm23 + - - 1.00 - - - - - - - vmulps %zmm26, %zmm23, %zmm23 + - - 1.00 - - - - - - - vaddps %zmm2, %zmm22, %zmm26 + - - 1.00 - - - - - - - vmulps %zmm24, %zmm1, %zmm24 + - - - - - - - 1.00 - - vmulps %zmm22, %zmm24, %zmm22 + - - 0.99 - - - - 0.01 - - vmulps %zmm26, %zmm22, %zmm22 + - - 0.50 - - - - 0.50 - - vaddps %zmm2, %zmm23, %zmm24 + - - 0.99 - - - - 0.01 - - vmulps %zmm25, %zmm1, %zmm25 + - - 0.50 - - - - 0.50 - - vmulps %zmm23, %zmm25, %zmm23 + - - 0.99 - - - - 0.01 - - vmulps %zmm24, %zmm23, %zmm23 + - - 1.00 - - - - - - - vfmadd231ps %zmm19, %zmm22, %zmm13 {%k2} + - - - - - - - 1.00 - - vfmadd231ps %zmm20, %zmm22, %zmm8 {%k2} + - - 0.99 - - - - 0.01 - - vfmadd231ps %zmm21, %zmm22, %zmm5 {%k2} + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm17, %zmm23, %zmm15 {%k1} + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm16, %zmm23, %zmm7 {%k1} + - - 0.50 - - - - 0.50 - - vfmadd231ps %zmm18, %zmm23, %zmm4 {%k1} + - - - - - - - - 1.00 - incq %rdx + - - - 0.02 - - - - 0.98 - cmpq %rdx, %r12 + - - - - - - - - 1.00 - jne .LBB2_11 + - - 0.01 - - - - - 0.99 - jmp .LBB2_12 diff --git a/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-icx.out b/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-icx.out new file mode 100644 index 0000000..5cee104 --- /dev/null +++ b/static_analysis/rafael/analyses/gromacs-icx-avx512-sp-mca-icx.out @@ -0,0 +1,140 @@ + +[0] Code Region + +Iterations: 100 +Instructions: 4700 +Total Cycles: 2286 +Total uOps: 5400 + +Dispatch Width: 6 +uOps Per Cycle: 2.36 +IPC: 2.06 +Block RThroughput: 16.0 + + +Instruction Info: +[1]: #uOps +[2]: Latency +[3]: RThroughput +[4]: MayLoad +[5]: MayStore +[6]: HasSideEffects (U) + +[1] [2] [3] [4] [5] [6] Instructions: + 1 5 0.50 * movslq (%rsi,%rdx,4), %rdi + 1 1 0.50 leaq (%rdi,%rdi,2), %rdi + 1 1 0.50 shlq $5, %rdi + 2 8 0.50 * vmovupd (%rcx,%rdi), %zmm16 + 2 8 0.50 * vinsertf64x4 $1, (%rcx,%rdi), %zmm16, %zmm17 + 2 8 0.50 * vbroadcastf64x4 64(%rcx,%rdi), %zmm18 + 1 3 1.00 vshuff64x2 $238, %zmm16, %zmm16, %zmm16 + 1 4 0.50 vsubps %zmm17, %zmm6, %zmm19 + 1 4 0.50 vsubps %zmm16, %zmm10, %zmm20 + 1 4 0.50 vsubps %zmm18, %zmm12, %zmm21 + 1 4 0.50 vsubps %zmm17, %zmm9, %zmm17 + 1 4 0.50 vsubps %zmm18, %zmm14, %zmm18 + 1 4 0.50 vsubps %zmm16, %zmm11, %zmm16 + 1 4 0.50 vmulps %zmm21, %zmm21, %zmm22 + 1 4 0.50 vfmadd231ps %zmm20, %zmm20, %zmm22 + 1 4 0.50 vfmadd231ps %zmm19, %zmm19, %zmm22 + 1 4 0.50 vmulps %zmm18, %zmm18, %zmm23 + 1 4 0.50 vfmadd231ps %zmm16, %zmm16, %zmm23 + 1 4 0.50 vfmadd231ps %zmm17, %zmm17, %zmm23 + 3 4 2.00 vrcp14ps %zmm22, %zmm24 + 3 4 2.00 vrcp14ps %zmm23, %zmm25 + 1 4 1.00 vcmpltps %zmm0, %zmm22, %k2 + 1 4 1.00 vcmpltps %zmm0, %zmm23, %k1 + 1 4 0.50 vmulps %zmm29, %zmm24, %zmm22 + 1 4 0.50 vmulps %zmm24, %zmm24, %zmm23 + 1 4 0.50 vmulps %zmm29, %zmm25, %zmm26 + 1 4 0.50 vmulps %zmm22, %zmm23, %zmm22 + 1 4 0.50 vmulps %zmm25, %zmm25, %zmm23 + 1 4 0.50 vmulps %zmm26, %zmm23, %zmm23 + 1 4 0.50 vaddps %zmm2, %zmm22, %zmm26 + 1 4 0.50 vmulps %zmm24, %zmm1, %zmm24 + 1 4 0.50 vmulps %zmm22, %zmm24, %zmm22 + 1 4 0.50 vmulps %zmm26, %zmm22, %zmm22 + 1 4 0.50 vaddps %zmm2, %zmm23, %zmm24 + 1 4 0.50 vmulps %zmm25, %zmm1, %zmm25 + 1 4 0.50 vmulps %zmm23, %zmm25, %zmm23 + 1 4 0.50 vmulps %zmm24, %zmm23, %zmm23 + 1 4 0.50 vfmadd231ps %zmm19, %zmm22, %zmm13 {%k2} + 1 4 0.50 vfmadd231ps %zmm20, %zmm22, %zmm8 {%k2} + 1 4 0.50 vfmadd231ps %zmm21, %zmm22, %zmm5 {%k2} + 1 4 0.50 vfmadd231ps %zmm17, %zmm23, %zmm15 {%k1} + 1 4 0.50 vfmadd231ps %zmm16, %zmm23, %zmm7 {%k1} + 1 4 0.50 vfmadd231ps %zmm18, %zmm23, %zmm4 {%k1} + 1 1 0.25 incq %rdx + 1 1 0.25 cmpq %rdx, %r12 + 1 1 0.50 jne .LBB2_11 + 1 1 0.50 jmp .LBB2_12 + + +Resources: +[0] - ICXDivider +[1] - ICXFPDivider +[2] - ICXPort0 +[3] - ICXPort1 +[4] - ICXPort2 +[5] - ICXPort3 +[6] - ICXPort4 +[7] - ICXPort5 +[8] - ICXPort6 +[9] - ICXPort7 +[10] - ICXPort8 +[11] - ICXPort9 + + +Resource pressure per iteration: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] + - - 20.53 3.97 2.00 2.00 - 20.53 4.97 - - - + +Resource pressure by instruction: +[0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: + - - - - - 1.00 - - - - - - movslq (%rsi,%rdx,4), %rdi + - - - 0.98 - - - 0.02 - - - - leaq (%rdi,%rdi,2), %rdi + - - - - - - - - 1.00 - - - shlq $5, %rdi + - - - 1.00 1.00 - - - - - - - vmovupd (%rcx,%rdi), %zmm16 + - - - 0.99 0.01 0.99 - 0.01 - - - - vinsertf64x4 $1, (%rcx,%rdi), %zmm16, %zmm17 + - - 0.01 0.98 0.99 0.01 - 0.01 - - - - vbroadcastf64x4 64(%rcx,%rdi), %zmm18 + - - - - - - - 1.00 - - - - vshuff64x2 $238, %zmm16, %zmm16, %zmm16 + - - 0.01 - - - - 0.99 - - - - vsubps %zmm17, %zmm6, %zmm19 + - - 0.50 - - - - 0.50 - - - - vsubps %zmm16, %zmm10, %zmm20 + - - 0.02 - - - - 0.98 - - - - vsubps %zmm18, %zmm12, %zmm21 + - - 0.49 - - - - 0.51 - - - - vsubps %zmm17, %zmm9, %zmm17 + - - 0.02 - - - - 0.98 - - - - vsubps %zmm18, %zmm14, %zmm18 + - - 0.98 - - - - 0.02 - - - - vsubps %zmm16, %zmm11, %zmm16 + - - 0.01 - - - - 0.99 - - - - vmulps %zmm21, %zmm21, %zmm22 + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm20, %zmm20, %zmm22 + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm19, %zmm19, %zmm22 + - - - - - - - 1.00 - - - - vmulps %zmm18, %zmm18, %zmm23 + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm16, %zmm16, %zmm23 + - - 0.01 - - - - 0.99 - - - - vfmadd231ps %zmm17, %zmm17, %zmm23 + - - 2.00 - - - - 1.00 - - - - vrcp14ps %zmm22, %zmm24 + - - 2.00 - - - - 1.00 - - - - vrcp14ps %zmm23, %zmm25 + - - - - - - - 1.00 - - - - vcmpltps %zmm0, %zmm22, %k2 + - - - - - - - 1.00 - - - - vcmpltps %zmm0, %zmm23, %k1 + - - 1.00 - - - - - - - - - vmulps %zmm29, %zmm24, %zmm22 + - - - - - - - 1.00 - - - - vmulps %zmm24, %zmm24, %zmm23 + - - 0.99 - - - - 0.01 - - - - vmulps %zmm29, %zmm25, %zmm26 + - - 0.51 - - - - 0.49 - - - - vmulps %zmm22, %zmm23, %zmm22 + - - 0.01 - - - - 0.99 - - - - vmulps %zmm25, %zmm25, %zmm23 + - - 1.00 - - - - - - - - - vmulps %zmm26, %zmm23, %zmm23 + - - 1.00 - - - - - - - - - vaddps %zmm2, %zmm22, %zmm26 + - - 1.00 - - - - - - - - - vmulps %zmm24, %zmm1, %zmm24 + - - - - - - - 1.00 - - - - vmulps %zmm22, %zmm24, %zmm22 + - - 0.99 - - - - 0.01 - - - - vmulps %zmm26, %zmm22, %zmm22 + - - 0.50 - - - - 0.50 - - - - vaddps %zmm2, %zmm23, %zmm24 + - - 0.99 - - - - 0.01 - - - - vmulps %zmm25, %zmm1, %zmm25 + - - 0.50 - - - - 0.50 - - - - vmulps %zmm23, %zmm25, %zmm23 + - - 0.99 - - - - 0.01 - - - - vmulps %zmm24, %zmm23, %zmm23 + - - 1.00 - - - - - - - - - vfmadd231ps %zmm19, %zmm22, %zmm13 {%k2} + - - - - - - - 1.00 - - - - vfmadd231ps %zmm20, %zmm22, %zmm8 {%k2} + - - 0.99 - - - - 0.01 - - - - vfmadd231ps %zmm21, %zmm22, %zmm5 {%k2} + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm17, %zmm23, %zmm15 {%k1} + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm16, %zmm23, %zmm7 {%k1} + - - 0.50 - - - - 0.50 - - - - vfmadd231ps %zmm18, %zmm23, %zmm4 {%k1} + - - - - - - - - 1.00 - - - incq %rdx + - - - 0.02 - - - - 0.98 - - - cmpq %rdx, %r12 + - - - - - - - - 1.00 - - - jne .LBB2_11 + - - 0.01 - - - - - 0.99 - - - jmp .LBB2_12