From 0d961fbd525cb7df3e981d6469b81cbf8f5e5883 Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Fri, 7 May 2021 16:15:35 +0300 Subject: [PATCH] [NFC][X86][MCA] AMD Zen 3: Add tests for renameable AVX YMM moves --- .../X86/Znver3/reg-move-elimination-avx-ymm.s | 1856 ++++++++++++++++++++ 1 file changed, 1856 insertions(+) create mode 100644 llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s diff --git a/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s new file mode 100644 index 0000000..91da5c0 --- /dev/null +++ b/llvm/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-ymm.s @@ -0,0 +1,1856 @@ +# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py +# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=znver3 -iterations=1500 -timeline -register-file-stats < %s | FileCheck %s + +# LLVM-MCA-BEGIN +vmovaps %ymm0, %ymm1 +vmovaps %ymm1, %ymm2 +vmovaps %ymm2, %ymm3 +vmovaps %ymm3, %ymm4 +vmovaps %ymm4, %ymm5 +vmovaps %ymm5, %ymm6 +vmovaps %ymm6, %ymm7 +vmovaps %ymm7, %ymm8 +vmovaps %ymm8, %ymm9 +vmovaps %ymm9, %ymm10 +vmovaps %ymm10, %ymm11 +vmovaps %ymm11, %ymm12 +vmovaps %ymm12, %ymm13 +vmovaps %ymm13, %ymm14 +vmovaps %ymm14, %ymm15 +vmovaps %ymm15, %ymm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovups %ymm0, %ymm1 +vmovups %ymm1, %ymm2 +vmovups %ymm2, %ymm3 +vmovups %ymm3, %ymm4 +vmovups %ymm4, %ymm5 +vmovups %ymm5, %ymm6 +vmovups %ymm6, %ymm7 +vmovups %ymm7, %ymm8 +vmovups %ymm8, %ymm9 +vmovups %ymm9, %ymm10 +vmovups %ymm10, %ymm11 +vmovups %ymm11, %ymm12 +vmovups %ymm12, %ymm13 +vmovups %ymm13, %ymm14 +vmovups %ymm14, %ymm15 +vmovups %ymm15, %ymm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovapd %ymm0, %ymm1 +vmovapd %ymm1, %ymm2 +vmovapd %ymm2, %ymm3 +vmovapd %ymm3, %ymm4 +vmovapd %ymm4, %ymm5 +vmovapd %ymm5, %ymm6 +vmovapd %ymm6, %ymm7 +vmovapd %ymm7, %ymm8 +vmovapd %ymm8, %ymm9 +vmovapd %ymm9, %ymm10 +vmovapd %ymm10, %ymm11 +vmovapd %ymm11, %ymm12 +vmovapd %ymm12, %ymm13 +vmovapd %ymm13, %ymm14 +vmovapd %ymm14, %ymm15 +vmovapd %ymm15, %ymm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovupd %ymm0, %ymm1 +vmovupd %ymm1, %ymm2 +vmovupd %ymm2, %ymm3 +vmovupd %ymm3, %ymm4 +vmovupd %ymm4, %ymm5 +vmovupd %ymm5, %ymm6 +vmovupd %ymm6, %ymm7 +vmovupd %ymm7, %ymm8 +vmovupd %ymm8, %ymm9 +vmovupd %ymm9, %ymm10 +vmovupd %ymm10, %ymm11 +vmovupd %ymm11, %ymm12 +vmovupd %ymm12, %ymm13 +vmovupd %ymm13, %ymm14 +vmovupd %ymm14, %ymm15 +vmovupd %ymm15, %ymm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovdqa %ymm0, %ymm1 +vmovdqa %ymm1, %ymm2 +vmovdqa %ymm2, %ymm3 +vmovdqa %ymm3, %ymm4 +vmovdqa %ymm4, %ymm5 +vmovdqa %ymm5, %ymm6 +vmovdqa %ymm6, %ymm7 +vmovdqa %ymm7, %ymm8 +vmovdqa %ymm8, %ymm9 +vmovdqa %ymm9, %ymm10 +vmovdqa %ymm10, %ymm11 +vmovdqa %ymm11, %ymm12 +vmovdqa %ymm12, %ymm13 +vmovdqa %ymm13, %ymm14 +vmovdqa %ymm14, %ymm15 +vmovdqa %ymm15, %ymm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovdqu %ymm0, %ymm1 +vmovdqu %ymm1, %ymm2 +vmovdqu %ymm2, %ymm3 +vmovdqu %ymm3, %ymm4 +vmovdqu %ymm4, %ymm5 +vmovdqu %ymm5, %ymm6 +vmovdqu %ymm6, %ymm7 +vmovdqu %ymm7, %ymm8 +vmovdqu %ymm8, %ymm9 +vmovdqu %ymm9, %ymm10 +vmovdqu %ymm10, %ymm11 +vmovdqu %ymm11, %ymm12 +vmovdqu %ymm12, %ymm13 +vmovdqu %ymm13, %ymm14 +vmovdqu %ymm14, %ymm15 +vmovdqu %ymm15, %ymm0 +# LLVM-MCA-END + +# CHECK: [0] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovaps %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovaps %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovaps %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovaps %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovaps %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovaps %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovaps %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovaps %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovaps %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovaps %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovaps %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovaps %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovaps %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovaps %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovaps %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovaps %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovaps %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovaps %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovaps %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovaps %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovaps %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovaps %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovaps %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovaps %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovaps %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovaps %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovaps %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovaps %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovaps %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovaps %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovaps %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovaps %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovaps %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovaps %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 + +# CHECK: [1] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovups %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovups %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovups %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovups %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovups %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovups %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovups %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovups %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovups %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovups %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovups %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovups %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovups %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovups %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovups %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovups %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovups %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovups %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovups %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovups %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovups %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovups %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovups %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovups %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovups %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovups %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovups %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovups %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovups %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovups %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovups %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovups %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovups %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovups %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovups %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovups %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovups %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovups %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 + +# CHECK: [2] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovapd %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovapd %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovapd %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovapd %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovapd %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovapd %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovapd %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovapd %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovapd %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovapd %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovapd %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovapd %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovapd %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovapd %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovapd %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovapd %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovapd %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovapd %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovapd %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovapd %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovapd %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovapd %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovapd %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovapd %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovapd %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovapd %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovapd %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovapd %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovapd %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovapd %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovapd %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovapd %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovapd %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovapd %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 + +# CHECK: [3] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovupd %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovupd %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovupd %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovupd %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovupd %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovupd %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovupd %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovupd %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovupd %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovupd %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovupd %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovupd %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovupd %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovupd %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovupd %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovupd %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovupd %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovupd %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovupd %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovupd %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovupd %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovupd %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovupd %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovupd %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovupd %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovupd %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovupd %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovupd %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovupd %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovupd %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovupd %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovupd %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovupd %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovupd %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 + +# CHECK: [4] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovdqa %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovdqa %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovdqa %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovdqa %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovdqa %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovdqa %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovdqa %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovdqa %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovdqa %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovdqa %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovdqa %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovdqa %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovdqa %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovdqa %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovdqa %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovdqa %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovdqa %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovdqa %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 + +# CHECK: [5] Code Region + +# CHECK: Iterations: 1500 +# CHECK-NEXT: Instructions: 24000 +# CHECK-NEXT: Total Cycles: 6002 +# CHECK-NEXT: Total uOps: 24000 + +# CHECK: Dispatch Width: 6 +# CHECK-NEXT: uOps Per Cycle: 4.00 +# CHECK-NEXT: IPC: 4.00 +# CHECK-NEXT: Block RThroughput: 4.0 + +# CHECK: Instruction Info: +# CHECK-NEXT: [1]: #uOps +# CHECK-NEXT: [2]: Latency +# CHECK-NEXT: [3]: RThroughput +# CHECK-NEXT: [4]: MayLoad +# CHECK-NEXT: [5]: MayStore +# CHECK-NEXT: [6]: HasSideEffects (U) + +# CHECK: [1] [2] [3] [4] [5] [6] Instructions: +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: 1 0 0.25 vmovdqu %ymm15, %ymm0 + +# CHECK: Register File statistics: +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #1 -- Zn3FpPRF: +# CHECK-NEXT: Number of physical registers: 160 +# CHECK-NEXT: Total number of mappings created: 24000 +# CHECK-NEXT: Max number of mappings used: 68 + +# CHECK: * Register File #2 -- Zn3IntegerPRF: +# CHECK-NEXT: Number of physical registers: 192 +# CHECK-NEXT: Total number of mappings created: 0 +# CHECK-NEXT: Max number of mappings used: 0 + +# CHECK: Resources: +# CHECK-NEXT: [0] - Zn3AGU0 +# CHECK-NEXT: [1] - Zn3AGU1 +# CHECK-NEXT: [2] - Zn3AGU2 +# CHECK-NEXT: [3] - Zn3ALU0 +# CHECK-NEXT: [4] - Zn3ALU1 +# CHECK-NEXT: [5] - Zn3ALU2 +# CHECK-NEXT: [6] - Zn3ALU3 +# CHECK-NEXT: [7] - Zn3BRU1 +# CHECK-NEXT: [8] - Zn3FPP0 +# CHECK-NEXT: [9] - Zn3FPP1 +# CHECK-NEXT: [10] - Zn3FPP2 +# CHECK-NEXT: [11] - Zn3FPP3 +# CHECK-NEXT: [12.0] - Zn3FPP45 +# CHECK-NEXT: [12.1] - Zn3FPP45 +# CHECK-NEXT: [13] - Zn3FPSt +# CHECK-NEXT: [14.0] - Zn3LSU +# CHECK-NEXT: [14.1] - Zn3LSU +# CHECK-NEXT: [14.2] - Zn3LSU +# CHECK-NEXT: [15.0] - Zn3Load +# CHECK-NEXT: [15.1] - Zn3Load +# CHECK-NEXT: [15.2] - Zn3Load +# CHECK-NEXT: [16.0] - Zn3Store +# CHECK-NEXT: [16.1] - Zn3Store + +# CHECK: Resource pressure per iteration: +# 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] +# CHECK-NEXT: - - - - - - - - 4.00 4.00 4.00 4.00 - - - - - - - - - - - + +# CHECK: Resource pressure by instruction: +# 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: +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %ymm15, %ymm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovdqu %ymm15, %ymm0 + +# CHECK: Average Wait times (based on the timeline view): +# CHECK-NEXT: [0]: Executions +# CHECK-NEXT: [1]: Average time spent waiting in a scheduler's queue +# CHECK-NEXT: [2]: Average time spent waiting in a scheduler's queue while ready +# CHECK-NEXT: [3]: Average time elapsed from WB until retire stage + +# CHECK: [0] [1] [2] [3] +# CHECK-NEXT: 0. 10 7.3 1.0 0.0 vmovdqu %ymm0, %ymm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovdqu %ymm1, %ymm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovdqu %ymm2, %ymm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovdqu %ymm3, %ymm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovdqu %ymm4, %ymm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovdqu %ymm5, %ymm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovdqu %ymm6, %ymm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovdqu %ymm7, %ymm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovdqu %ymm8, %ymm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovdqu %ymm9, %ymm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovdqu %ymm10, %ymm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovdqu %ymm11, %ymm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovdqu %ymm12, %ymm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovdqu %ymm13, %ymm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovdqu %ymm14, %ymm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovdqu %ymm15, %ymm0 +# CHECK-NEXT: 10 7.7 0.3 0.0 -- 2.7.4