diff --git a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse3.s index 8ecbbba79d73..c0b4b3048d27 100644 --- a/llvm/test/tools/llvm-mca/X86/Atom/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Atom/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 1 8 4.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 1 9 4.50 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 45 22.50 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 46 23.00 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - AtomPort0 @@ -65,7 +71,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 58.00 42.00 +# CHECK-NEXT: 103.50 87.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -82,9 +88,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 4.00 4.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4.50 4.50 hsubps (%rax), %xmm2 # CHECK-NEXT: 1.50 1.50 lddqu (%rax), %xmm2 +# CHECK-NEXT: 22.50 22.50 monitor # CHECK-NEXT: 1.00 - movddup %xmm0, %xmm2 # CHECK-NEXT: 1.00 - movddup (%rax), %xmm2 # CHECK-NEXT: 1.00 - movshdup %xmm0, %xmm2 # CHECK-NEXT: 1.00 - movshdup (%rax), %xmm2 # CHECK-NEXT: 1.00 - movsldup %xmm0, %xmm2 # CHECK-NEXT: 1.00 - movsldup (%rax), %xmm2 +# CHECK-NEXT: 23.00 23.00 mwait diff --git a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse3.s index aedbd80c033e..a50f2cb3699f 100644 --- a/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/BdVer2/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 11 1.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 16 1.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 5 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.50 U monitor # CHECK-NEXT: 1 2 0.50 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 7 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 2 0.50 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 7 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 2 0.50 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 7 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.50 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0.0] - PdAGLU01 @@ -86,7 +92,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] -# CHECK-NEXT: 5.00 5.00 - - - - - - 9.00 9.00 0.50 0.50 - - 15.50 3.50 - - - 5.00 5.00 - - +# CHECK-NEXT: 5.00 5.00 - - - 1.00 1.00 - 9.00 9.00 0.50 0.50 - - 15.50 3.50 - - - 5.00 5.00 - - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0.0] [0.1] [1] [2] [3] [4] [5] [6] [7.0] [7.1] [8.0] [8.1] [9] [10] [11] [12] [13] [14] [15] [16.0] [16.1] [17] [18] Instructions: @@ -103,9 +109,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - hsubps %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - hsubps (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - monitor # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - movddup %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - movshdup %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - - - - - movsldup %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 0.50 0.50 - - - 0.50 0.50 - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - - - - - - - - - - - - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse3.s index e660799931c0..4f97d12ee6d7 100644 --- a/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Broadwell/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 5 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 10 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 5 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - BWDivider @@ -73,7 +79,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - - 12.00 5.00 5.00 - 19.00 - - +# CHECK-NEXT: - - 0.50 12.50 5.00 5.00 - 19.50 0.50 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -90,9 +96,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - 2.00 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - 2.00 - - hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - monitor # CHECK-NEXT: - - - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - mwait diff --git a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s index add8bd843bfa..581af93d5ea3 100644 --- a/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/BtVer2/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 1 4 1.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 1 9 1.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 5 1.00 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.50 U monitor # CHECK-NEXT: 1 1 0.50 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.50 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - JALU0 @@ -77,7 +83,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] -# CHECK-NEXT: - - - 15.00 3.00 15.50 3.50 10.00 - - - 0.50 0.50 - +# CHECK-NEXT: 1.00 1.00 - 15.00 3.00 15.50 3.50 10.00 - - - 0.50 0.50 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -94,9 +100,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - lddqu (%rax), %xmm2 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - monitor # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 - - - - - - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 0.50 1.00 - - - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse3.s index 8438e1a7a843..7b4c0a34f315 100644 --- a/llvm/test/tools/llvm-mca/X86/Generic/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Generic/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 5 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 11 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 6 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.33 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.33 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - SBDivider @@ -71,7 +77,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - - 12.00 - 19.00 5.00 5.00 +# CHECK-NEXT: - - 0.67 12.67 - 19.67 5.00 5.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -88,9 +94,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 2.00 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - monitor # CHECK-NEXT: - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse3.s index 776ff79bec5b..6832defc50e5 100644 --- a/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Haswell/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 5 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 11 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 6 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 10 20 2.50 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - HWDivider @@ -73,7 +79,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - - 12.00 5.00 5.00 - 19.00 - - +# CHECK-NEXT: - - 2.00 14.00 5.00 5.00 - 22.00 4.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -90,9 +96,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - 2.00 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - 2.00 - - hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - monitor # CHECK-NEXT: - - - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 1.75 1.75 - - - 2.75 3.75 - mwait diff --git a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse3.s index ba140f216ed7..484c353b07bf 100644 --- a/llvm/test/tools/llvm-mca/X86/SLM/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/SLM/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 1.00 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 4 1.00 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 4 1.00 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 4 1.00 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 1.00 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - SLMDivider @@ -71,7 +77,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: - - - 14.00 12.00 - - 10.00 +# CHECK-NEXT: - - - 16.00 12.00 - - 10.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -88,9 +94,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 1.00 - - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 1.00 - - 1.00 hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 lddqu (%rax), %xmm2 +# CHECK-NEXT: - - - 1.00 - - - - monitor # CHECK-NEXT: - - - 1.00 - - - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - - 1.00 movddup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - - 1.00 movshdup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - - 1.00 movsldup (%rax), %xmm2 +# CHECK-NEXT: - - - 1.00 - - - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse3.s index 70e3f5b31f44..1f1f58674fe3 100644 --- a/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/SandyBridge/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 5 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 11 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 6 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.33 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.33 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - SBDivider @@ -71,7 +77,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - - - 12.00 - 19.00 5.00 5.00 +# CHECK-NEXT: - - 0.67 12.67 - 19.67 5.00 5.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -88,9 +94,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 2.00 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - 2.00 0.50 0.50 hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - monitor # CHECK-NEXT: - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - 0.50 0.50 movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - mwait diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse3.s index d7a9e5aa44fa..df495ed45be9 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeClient/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 6 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 12 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 6 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 10 20 2.50 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - SKLDivider @@ -73,7 +79,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 6.00 6.00 5.00 5.00 - 19.00 - - +# CHECK-NEXT: - - 8.00 8.00 5.00 5.00 - 22.00 4.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -90,9 +96,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - 2.00 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - 2.00 - - hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - monitor # CHECK-NEXT: - - - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 1.75 1.75 - - - 2.75 3.75 - mwait diff --git a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse3.s index 0edccb9c78b6..61cf0f1fdc39 100644 --- a/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/SkylakeServer/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 3 6 2.00 hsubps %xmm0, %xmm2 # CHECK-NEXT: 4 12 2.00 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 6 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 1.00 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 5 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 6 0.50 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 10 20 2.50 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - SKXDivider @@ -73,7 +79,7 @@ movsldup (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - - 4.67 4.67 5.00 5.00 - 21.67 - - +# CHECK-NEXT: - - 6.67 6.67 5.00 5.00 - 24.67 4.00 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -90,9 +96,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - 0.33 0.33 - - - 2.33 - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 2.33 - - hsubps (%rax), %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - monitor # CHECK-NEXT: - - - - - - - 1.00 - - movddup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - 0.50 0.50 - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - 1.75 1.75 - - - 2.75 3.75 - mwait diff --git a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s index 0e61c4d6c5ce..8de91b63bbb3 100644 --- a/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s +++ b/llvm/test/tools/llvm-mca/X86/Znver1/resources-sse3.s @@ -21,6 +21,8 @@ hsubps (%rax), %xmm2 lddqu (%rax), %xmm2 +monitor + movddup %xmm0, %xmm2 movddup (%rax), %xmm2 @@ -30,6 +32,8 @@ movshdup (%rax), %xmm2 movsldup %xmm0, %xmm2 movsldup (%rax), %xmm2 +mwait + # CHECK: Instruction Info: # CHECK-NEXT: [1]: #uOps # CHECK-NEXT: [2]: Latency @@ -52,12 +56,14 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: 1 100 0.25 hsubps %xmm0, %xmm2 # CHECK-NEXT: 1 100 0.25 * hsubps (%rax), %xmm2 # CHECK-NEXT: 1 8 0.50 * lddqu (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 U monitor # CHECK-NEXT: 1 1 0.50 movddup %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.50 * movddup (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 movshdup %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.50 * movshdup (%rax), %xmm2 # CHECK-NEXT: 1 100 0.25 movsldup %xmm0, %xmm2 # CHECK-NEXT: 1 100 0.25 * movsldup (%rax), %xmm2 +# CHECK-NEXT: 1 100 0.25 * * U mwait # CHECK: Resources: # CHECK-NEXT: [0] - ZnAGU0 @@ -92,9 +98,11 @@ movsldup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - hsubps %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - hsubps (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - lddqu (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - - - - - - monitor # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - movddup %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movddup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - movshdup %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - movshdup (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - - - movsldup %xmm0, %xmm2 # CHECK-NEXT: - - - - - - - - - - - - movsldup (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - - - - - - mwait