From 08ef520ecb54dae36b14ce352093e00a84429e7f Mon Sep 17 00:00:00 2001 From: Roman Lebedev Date: Fri, 7 May 2021 16:15:17 +0300 Subject: [PATCH] [NFC][X86][MCA] AMD Zen 3: Add tests for renameable AVX XMM moves --- .../X86/Znver3/reg-move-elimination-avx-xmm.s | 1856 +++++++++++++++++ 1 file changed, 1856 insertions(+) create mode 100644 test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s diff --git a/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s b/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.s new file mode 100644 index 00000000000..0845a42d18d --- /dev/null +++ b/test/tools/llvm-mca/X86/Znver3/reg-move-elimination-avx-xmm.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 %xmm0, %xmm1 +vmovaps %xmm1, %xmm2 +vmovaps %xmm2, %xmm3 +vmovaps %xmm3, %xmm4 +vmovaps %xmm4, %xmm5 +vmovaps %xmm5, %xmm6 +vmovaps %xmm6, %xmm7 +vmovaps %xmm7, %xmm8 +vmovaps %xmm8, %xmm9 +vmovaps %xmm9, %xmm10 +vmovaps %xmm10, %xmm11 +vmovaps %xmm11, %xmm12 +vmovaps %xmm12, %xmm13 +vmovaps %xmm13, %xmm14 +vmovaps %xmm14, %xmm15 +vmovaps %xmm15, %xmm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovups %xmm0, %xmm1 +vmovups %xmm1, %xmm2 +vmovups %xmm2, %xmm3 +vmovups %xmm3, %xmm4 +vmovups %xmm4, %xmm5 +vmovups %xmm5, %xmm6 +vmovups %xmm6, %xmm7 +vmovups %xmm7, %xmm8 +vmovups %xmm8, %xmm9 +vmovups %xmm9, %xmm10 +vmovups %xmm10, %xmm11 +vmovups %xmm11, %xmm12 +vmovups %xmm12, %xmm13 +vmovups %xmm13, %xmm14 +vmovups %xmm14, %xmm15 +vmovups %xmm15, %xmm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovapd %xmm0, %xmm1 +vmovapd %xmm1, %xmm2 +vmovapd %xmm2, %xmm3 +vmovapd %xmm3, %xmm4 +vmovapd %xmm4, %xmm5 +vmovapd %xmm5, %xmm6 +vmovapd %xmm6, %xmm7 +vmovapd %xmm7, %xmm8 +vmovapd %xmm8, %xmm9 +vmovapd %xmm9, %xmm10 +vmovapd %xmm10, %xmm11 +vmovapd %xmm11, %xmm12 +vmovapd %xmm12, %xmm13 +vmovapd %xmm13, %xmm14 +vmovapd %xmm14, %xmm15 +vmovapd %xmm15, %xmm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovupd %xmm0, %xmm1 +vmovupd %xmm1, %xmm2 +vmovupd %xmm2, %xmm3 +vmovupd %xmm3, %xmm4 +vmovupd %xmm4, %xmm5 +vmovupd %xmm5, %xmm6 +vmovupd %xmm6, %xmm7 +vmovupd %xmm7, %xmm8 +vmovupd %xmm8, %xmm9 +vmovupd %xmm9, %xmm10 +vmovupd %xmm10, %xmm11 +vmovupd %xmm11, %xmm12 +vmovupd %xmm12, %xmm13 +vmovupd %xmm13, %xmm14 +vmovupd %xmm14, %xmm15 +vmovupd %xmm15, %xmm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovdqa %xmm0, %xmm1 +vmovdqa %xmm1, %xmm2 +vmovdqa %xmm2, %xmm3 +vmovdqa %xmm3, %xmm4 +vmovdqa %xmm4, %xmm5 +vmovdqa %xmm5, %xmm6 +vmovdqa %xmm6, %xmm7 +vmovdqa %xmm7, %xmm8 +vmovdqa %xmm8, %xmm9 +vmovdqa %xmm9, %xmm10 +vmovdqa %xmm10, %xmm11 +vmovdqa %xmm11, %xmm12 +vmovdqa %xmm12, %xmm13 +vmovdqa %xmm13, %xmm14 +vmovdqa %xmm14, %xmm15 +vmovdqa %xmm15, %xmm0 +# LLVM-MCA-END + +# LLVM-MCA-BEGIN +vmovdqu %xmm0, %xmm1 +vmovdqu %xmm1, %xmm2 +vmovdqu %xmm2, %xmm3 +vmovdqu %xmm3, %xmm4 +vmovdqu %xmm4, %xmm5 +vmovdqu %xmm5, %xmm6 +vmovdqu %xmm6, %xmm7 +vmovdqu %xmm7, %xmm8 +vmovdqu %xmm8, %xmm9 +vmovdqu %xmm9, %xmm10 +vmovdqu %xmm10, %xmm11 +vmovdqu %xmm11, %xmm12 +vmovdqu %xmm12, %xmm13 +vmovdqu %xmm13, %xmm14 +vmovdqu %xmm14, %xmm15 +vmovdqu %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovaps %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovaps %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovaps %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovaps %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovaps %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovaps %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovaps %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovaps %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovaps %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovaps %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovaps %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovaps %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovaps %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovaps %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovaps %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovaps %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovaps %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovaps %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovaps %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovaps %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovaps %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovaps %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovaps %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovaps %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovaps %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovaps %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovaps %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovaps %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovaps %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovaps %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovaps %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovaps %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovaps %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovaps %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovaps %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovaps %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovaps %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovups %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovups %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovups %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovups %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovups %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovups %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovups %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovups %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovups %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovups %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovups %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovups %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovups %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovups %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovups %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovups %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovups %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovups %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovups %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovups %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovups %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovups %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovups %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovups %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovups %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovups %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovups %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovups %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovups %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovups %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovups %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovups %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovups %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovups %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovups %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovups %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovups %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovups %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovups %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovups %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovapd %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovapd %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovapd %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovapd %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovapd %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovapd %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovapd %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovapd %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovapd %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovapd %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovapd %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovapd %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovapd %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovapd %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovapd %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovapd %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovapd %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovapd %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovapd %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovapd %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovapd %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovapd %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovapd %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovapd %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovapd %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovapd %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovapd %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovapd %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovapd %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovapd %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovapd %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovapd %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovapd %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovapd %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovapd %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovapd %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovapd %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovupd %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovupd %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovupd %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovupd %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovupd %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovupd %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovupd %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovupd %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovupd %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovupd %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovupd %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovupd %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovupd %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovupd %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovupd %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovupd %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovupd %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovupd %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovupd %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovupd %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovupd %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovupd %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovupd %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovupd %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovupd %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovupd %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovupd %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovupd %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovupd %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovupd %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovupd %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovupd %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovupd %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovupd %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovupd %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovupd %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovupd %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovdqa %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqa %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovdqa %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovdqa %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovdqa %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovdqa %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovdqa %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovdqa %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovdqa %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovdqa %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovdqa %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovdqa %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovdqa %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovdqa %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovdqa %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovdqa %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovdqa %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovdqa %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovdqa %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovdqa %xmm15, %xmm0 +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: 1 0 0.25 vmovdqu %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: - - - - - - - - - - - 1.00 - - - - - - - - - - - vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: - - - - - - - - - - 1.00 - - - - - - - - - - - - vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - - - - - - - - - - vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: - - - - - - - - 1.00 - - - - - - - - - - - - - - vmovdqu %xmm15, %xmm0 + +# CHECK: Timeline view: +# CHECK-NEXT: 0123456789 0123456789 +# CHECK-NEXT: Index 0123456789 0123456789 01 + +# CHECK: [0,0] DER . . . . . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [0,1] DER . . . . . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [0,2] DER . . . . . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [0,3] DER . . . . . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [0,4] D=ER . . . . . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [0,5] D=ER . . . . . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [0,6] .DER . . . . . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [0,7] .DER . . . . . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [0,8] .D=ER. . . . . . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [0,9] .D=ER. . . . . . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [0,10] .D=ER. . . . . . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [0,11] .D=ER. . . . . . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [0,12] . D=ER . . . . . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [0,13] . D=ER . . . . . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [0,14] . D=ER . . . . . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [0,15] . D=ER . . . . . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [1,0] . D==ER . . . . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [1,1] . D==ER . . . . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [1,2] . D=ER . . . . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [1,3] . D=ER . . . . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [1,4] . D==ER . . . . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [1,5] . D==ER . . . . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [1,6] . D==ER . . . . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [1,7] . D==ER . . . . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [1,8] . D==ER . . . . . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [1,9] . D==ER . . . . . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [1,10] . D==ER . . . . . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [1,11] . D==ER . . . . . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [1,12] . D===ER. . . . . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [1,13] . D===ER. . . . . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [1,14] . D==ER. . . . . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [1,15] . D==ER. . . . . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [2,0] . D===ER . . . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [2,1] . D===ER . . . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [2,2] . D===ER . . . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [2,3] . D===ER . . . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [2,4] . .D===ER . . . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [2,5] . .D===ER . . . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [2,6] . .D===ER . . . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [2,7] . .D===ER . . . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [2,8] . .D====ER . . . . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [2,9] . .D====ER . . . . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [2,10] . . D===ER . . . . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [2,11] . . D===ER . . . . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [2,12] . . D====ER . . . . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [2,13] . . D====ER . . . . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [2,14] . . D====ER . . . . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [2,15] . . D====ER . . . . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [3,0] . . D====ER. . . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [3,1] . . D====ER. . . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [3,2] . . D====ER. . . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [3,3] . . D====ER. . . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [3,4] . . D=====ER . . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [3,5] . . D=====ER . . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [3,6] . . D====ER . . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [3,7] . . D====ER . . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [3,8] . . D=====ER . . . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [3,9] . . D=====ER . . . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [3,10] . . D=====ER . . . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [3,11] . . D=====ER . . . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [3,12] . . D=====ER . . . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [3,13] . . D=====ER . . . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [3,14] . . D=====ER . . . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [3,15] . . D=====ER . . . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [4,0] . . D======ER . . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [4,1] . . D======ER . . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [4,2] . . .D=====ER . . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [4,3] . . .D=====ER . . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [4,4] . . .D======ER. . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [4,5] . . .D======ER. . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [4,6] . . .D======ER. . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [4,7] . . .D======ER. . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [4,8] . . . D======ER . . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [4,9] . . . D======ER . . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [4,10] . . . D======ER . . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [4,11] . . . D======ER . . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [4,12] . . . D=======ER . . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [4,13] . . . D=======ER . . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [4,14] . . . D======ER . . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [4,15] . . . D======ER . . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [5,0] . . . D=======ER . . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [5,1] . . . D=======ER . . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [5,2] . . . D=======ER . . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [5,3] . . . D=======ER . . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [5,4] . . . D=======ER . . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [5,5] . . . D=======ER . . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [5,6] . . . D=======ER . . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [5,7] . . . D=======ER . . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [5,8] . . . D========ER. . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [5,9] . . . D========ER. . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [5,10] . . . D=======ER. . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [5,11] . . . D=======ER. . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [5,12] . . . D========ER . . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [5,13] . . . D========ER . . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [5,14] . . . D========ER . . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [5,15] . . . D========ER . . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [6,0] . . . .D========ER . . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [6,1] . . . .D========ER . . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [6,2] . . . .D========ER . . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [6,3] . . . .D========ER . . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [6,4] . . . .D=========ER . . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [6,5] . . . .D=========ER . . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [6,6] . . . . D========ER . . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [6,7] . . . . D========ER . . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [6,8] . . . . D=========ER . . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [6,9] . . . . D=========ER . . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [6,10] . . . . D=========ER . . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [6,11] . . . . D=========ER . . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [6,12] . . . . D=========ER. . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [6,13] . . . . D=========ER. . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [6,14] . . . . D=========ER. . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [6,15] . . . . D=========ER. . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [7,0] . . . . D==========ER . .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [7,1] . . . . D==========ER . .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [7,2] . . . . D=========ER . .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [7,3] . . . . D=========ER . .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [7,4] . . . . D==========ER . .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [7,5] . . . . D==========ER . .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [7,6] . . . . D==========ER . .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [7,7] . . . . D==========ER . .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [7,8] . . . . D==========ER . .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [7,9] . . . . D==========ER . .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [7,10] . . . . D==========ER . .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [7,11] . . . . D==========ER . .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [7,12] . . . . D===========ER . .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [7,13] . . . . D===========ER . .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [7,14] . . . . .D==========ER . .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [7,15] . . . . .D==========ER . .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [8,0] . . . . .D===========ER. .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [8,1] . . . . .D===========ER. .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [8,2] . . . . .D===========ER. .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [8,3] . . . . .D===========ER. .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [8,4] . . . . . D===========ER .. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [8,5] . . . . . D===========ER .. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [8,6] . . . . . D===========ER .. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [8,7] . . . . . D===========ER .. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [8,8] . . . . . D============ER .. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [8,9] . . . . . D============ER .. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [8,10] . . . . . D===========ER .. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [8,11] . . . . . D===========ER .. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [8,12] . . . . . D============ER .. vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [8,13] . . . . . D============ER .. vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [8,14] . . . . . D============ER .. vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [8,15] . . . . . D============ER .. vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: [9,0] . . . . . D============ER .. vmovdqu %xmm0, %xmm1 +# CHECK-NEXT: [9,1] . . . . . D============ER .. vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: [9,2] . . . . . D============ER .. vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: [9,3] . . . . . D============ER .. vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: [9,4] . . . . . D=============ER.. vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: [9,5] . . . . . D=============ER.. vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: [9,6] . . . . . D============ER.. vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: [9,7] . . . . . D============ER.. vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: [9,8] . . . . . D=============ER. vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: [9,9] . . . . . D=============ER. vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: [9,10] . . . . . D=============ER. vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: [9,11] . . . . . D=============ER. vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: [9,12] . . . . . .D=============ER vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: [9,13] . . . . . .D=============ER vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: [9,14] . . . . . .D=============ER vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: [9,15] . . . . . .D=============ER vmovdqu %xmm15, %xmm0 + +# 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 %xmm0, %xmm1 +# CHECK-NEXT: 1. 10 7.3 0.0 0.0 vmovdqu %xmm1, %xmm2 +# CHECK-NEXT: 2. 10 7.0 0.0 0.0 vmovdqu %xmm2, %xmm3 +# CHECK-NEXT: 3. 10 7.0 0.0 0.0 vmovdqu %xmm3, %xmm4 +# CHECK-NEXT: 4. 10 7.7 1.0 0.0 vmovdqu %xmm4, %xmm5 +# CHECK-NEXT: 5. 10 7.7 0.0 0.0 vmovdqu %xmm5, %xmm6 +# CHECK-NEXT: 6. 10 7.3 0.0 0.0 vmovdqu %xmm6, %xmm7 +# CHECK-NEXT: 7. 10 7.3 0.0 0.0 vmovdqu %xmm7, %xmm8 +# CHECK-NEXT: 8. 10 8.0 1.0 0.0 vmovdqu %xmm8, %xmm9 +# CHECK-NEXT: 9. 10 8.0 0.0 0.0 vmovdqu %xmm9, %xmm10 +# CHECK-NEXT: 10. 10 7.7 0.0 0.0 vmovdqu %xmm10, %xmm11 +# CHECK-NEXT: 11. 10 7.7 0.0 0.0 vmovdqu %xmm11, %xmm12 +# CHECK-NEXT: 12. 10 8.3 1.0 0.0 vmovdqu %xmm12, %xmm13 +# CHECK-NEXT: 13. 10 8.3 0.0 0.0 vmovdqu %xmm13, %xmm14 +# CHECK-NEXT: 14. 10 8.0 0.0 0.0 vmovdqu %xmm14, %xmm15 +# CHECK-NEXT: 15. 10 8.0 0.0 0.0 vmovdqu %xmm15, %xmm0 +# CHECK-NEXT: 10 7.7 0.3 0.0