From: Simon Pilgrim Date: Tue, 22 Jan 2019 16:01:08 +0000 (+0000) Subject: [llvm-mca][X86] Add missing mfence/pinsrw tests X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=79674b60d7625db5c62b18893dd289be90fb870f;p=llvm [llvm-mca][X86] Add missing mfence/pinsrw tests git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351831 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/test/tools/llvm-mca/X86/Atom/resources-sse2.s b/test/tools/llvm-mca/X86/Atom/resources-sse2.s index e1e903943ec..3f65619e0f5 100644 --- a/test/tools/llvm-mca/X86/Atom/resources-sse2.s +++ b/test/tools/llvm-mca/X86/Atom/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 7 3.50 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 5 5.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 1 5 5.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 6 3.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 1 7 3.50 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 5 5.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1 1 1.00 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 1 4 2.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 1 1 1.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 1 1 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 5 5.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 1 5 5.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -673,7 +681,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] -# CHECK-NEXT: 868.50 638.50 +# CHECK-NEXT: 871.50 638.50 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] Instructions: @@ -740,6 +748,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 3.50 3.50 maxpd (%rax), %xmm2 # CHECK-NEXT: 5.00 - maxsd %xmm0, %xmm2 # CHECK-NEXT: 5.00 - maxsd (%rax), %xmm2 +# CHECK-NEXT: 1.00 - mfence # CHECK-NEXT: 3.00 3.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 3.50 3.50 minpd (%rax), %xmm2 # CHECK-NEXT: 5.00 - minsd %xmm0, %xmm2 @@ -830,6 +839,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1.00 - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2.00 2.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 1.00 - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 1.00 - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 5.00 - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 5.00 - pmaddwd (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s b/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s index 84bf65664c8..792002e4418 100644 --- a/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s +++ b/test/tools/llvm-mca/X86/BdVer2/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 7 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 2 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 2 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 13 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 0.50 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 6 0.50 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 4 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 1 9 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 2 0.50 pmaxsw %xmm0, %xmm2 @@ -694,7 +702,7 @@ xorpd (%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: 66.00 66.00 - - - 17.00 - - 124.50 124.50 66.50 66.50 12.00 50.00 119.50 140.50 - - - 58.50 58.50 - 15.00 +# CHECK-NEXT: 67.00 67.00 - - - 17.00 - - 124.50 124.50 67.50 67.50 12.00 50.00 120.50 141.50 - - - 59.00 59.00 - 16.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: @@ -761,6 +769,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - maxsd (%rax), %xmm2 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - - - - - - - - - - - 1.00 mfence # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - 0.50 0.50 - - - - 1.00 - - - - 0.50 0.50 - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 0.50 - - - - 1.00 - - - - - - - - minsd %xmm0, %xmm2 @@ -851,6 +860,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - - - - 1.00 - - 0.50 0.50 - - - - 1.00 - - - - - - - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - 0.50 0.50 - - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - - - - - - - - - - - 1.00 - 1.00 - - - - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - - - - - - 1.00 - 1.00 - - - - 0.50 0.50 - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - - - 0.50 0.50 - - 0.50 0.50 - - - - - - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s b/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s index 26c3cd75658..e4b2d680d04 100644 --- a/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s +++ b/test/tools/llvm-mca/X86/Broadwell/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 8 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 8 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 2 2 0.50 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 8 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 6 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 2 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 5 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 10 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -681,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 78.00 70.25 95.25 62.67 62.67 14.00 123.75 1.75 4.67 +# CHECK-NEXT: - 78.00 70.75 95.75 63.17 63.17 14.00 127.25 2.25 4.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -748,6 +756,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - mfence # CHECK-NEXT: - - - 1.00 - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - - - minsd %xmm0, %xmm2 @@ -838,6 +847,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - 2.00 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 1.00 - - - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s b/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s index d22bc447400..46f03ae9c17 100644 --- a/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s +++ b/test/tools/llvm-mca/X86/BtVer2/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 7 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 2 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 2 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 7 0.50 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 1 4 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 2 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -685,7 +693,7 @@ xorpd (%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: 17.00 - - 49.00 204.00 127.50 140.50 117.00 - 15.00 54.00 66.50 66.50 12.00 +# CHECK-NEXT: 17.00 - - 49.00 204.00 128.50 141.50 118.00 - 16.00 54.00 67.50 67.50 12.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] [12] [13] Instructions: @@ -752,6 +760,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - - - 1.00 - - - - mfence # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - 1.00 - - - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - 1.00 - - - - - - - - minsd %xmm0, %xmm2 @@ -842,6 +851,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 1.00 - - 1.00 - 1.00 - - - - - - - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - - - 0.50 0.50 1.00 - - - 0.50 0.50 - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - - - - 1.00 - - - - - - - 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - - - - 1.00 - 1.00 - - - - - 1.00 pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - - - 0.50 0.50 - - - - 0.50 0.50 - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/Generic/resources-sse2.s b/test/tools/llvm-mca/X86/Generic/resources-sse2.s index 30534807cb3..63a40d5c717 100644 --- a/test/tools/llvm-mca/X86/Generic/resources-sse2.s +++ b/test/tools/llvm-mca/X86/Generic/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 9 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 1.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 7 0.50 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 5 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 11 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -679,7 +687,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - 172.00 75.83 117.33 16.00 98.83 66.00 66.00 +# CHECK-NEXT: - 172.00 75.83 118.33 17.00 100.83 67.00 67.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -746,6 +754,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 maxpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 maxsd (%rax), %xmm2 +# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 mfence # CHECK-NEXT: - - - 1.00 - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 minpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - minsd %xmm0, %xmm2 @@ -836,6 +845,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 0.50 - 0.50 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - 0.50 - 1.50 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 1.00 - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/Haswell/resources-sse2.s b/test/tools/llvm-mca/X86/Haswell/resources-sse2.s index 5f788137710..1a61240252d 100644 --- a/test/tools/llvm-mca/X86/Haswell/resources-sse2.s +++ b/test/tools/llvm-mca/X86/Haswell/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 9 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 8 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 2 2 0.50 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 2 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 5 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 11 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -681,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 112.00 70.25 95.25 62.67 62.67 14.00 123.75 1.75 4.67 +# CHECK-NEXT: - 112.00 70.75 95.75 63.17 63.17 14.00 127.25 2.25 4.67 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -748,6 +756,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: - - 0.50 0.50 - - - 0.50 0.50 - mfence # CHECK-NEXT: - - - 1.00 - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 0.50 0.50 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - - - minsd %xmm0, %xmm2 @@ -838,6 +847,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - 2.00 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 1.00 - - - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - 0.50 0.50 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - - - 0.50 - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/SLM/resources-sse2.s b/test/tools/llvm-mca/X86/SLM/resources-sse2.s index 9ab05ee1083..12b17629b8d 100644 --- a/test/tools/llvm-mca/X86/SLM/resources-sse2.s +++ b/test/tools/llvm-mca/X86/SLM/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 6 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 1 6 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1 4 1.00 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 1 1 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 1 1 1.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 1 4 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 4 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 1 7 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -679,7 +687,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] -# CHECK-NEXT: - 412.00 8.00 150.50 86.50 3.00 3.00 132.00 +# CHECK-NEXT: - 412.00 8.00 152.50 86.50 3.00 3.00 134.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] Instructions: @@ -746,6 +754,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - 1.00 - - 1.00 maxpd (%rax), %xmm2 # CHECK-NEXT: - - - - 1.00 - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - - 1.00 - - 1.00 maxsd (%rax), %xmm2 +# CHECK-NEXT: - - - - - - - 1.00 mfence # CHECK-NEXT: - - - - 1.00 - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - - 1.00 - - 1.00 minpd (%rax), %xmm2 # CHECK-NEXT: - - - - 1.00 - - - minsd %xmm0, %xmm2 @@ -836,6 +845,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 - - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 0.50 - - 1.00 pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - 1.00 - - - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - 1.00 - - - 1.00 pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - - 1.00 - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - - 1.00 pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 0.50 - - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s b/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s index d0e9437f568..781ed65cd3d 100644 --- a/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s +++ b/test/tools/llvm-mca/X86/SandyBridge/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 9 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 1.00 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 9 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 1.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 7 0.50 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 5 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 11 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -679,7 +687,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] -# CHECK-NEXT: - 172.00 75.83 117.33 16.00 98.83 66.00 66.00 +# CHECK-NEXT: - 172.00 75.83 118.33 17.00 100.83 67.00 67.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions: @@ -746,6 +754,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 maxpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 maxsd (%rax), %xmm2 +# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 mfence # CHECK-NEXT: - - - 1.00 - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - - 1.00 - - 0.50 0.50 minpd (%rax), %xmm2 # CHECK-NEXT: - - - 1.00 - - - - minsd %xmm0, %xmm2 @@ -836,6 +845,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 0.50 - 0.50 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - 0.50 - 1.50 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 1.00 - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 1.00 - - - 0.50 0.50 pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - 0.50 - 0.50 - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s b/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s index f9cee78654b..8c30e781b39 100644 --- a/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s +++ b/test/tools/llvm-mca/X86/SkylakeClient/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 10 0.50 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 4 0.50 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 9 0.50 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 3 3 0.50 * * U mfence # CHECK-NEXT: 1 4 0.50 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 10 0.50 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 4 0.50 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 4 0.50 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 10 0.50 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -681,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 38.00 110.42 78.42 62.67 62.67 14.00 93.42 1.75 4.67 +# CHECK-NEXT: - 38.00 110.92 78.92 63.50 63.50 14.00 96.92 2.25 5.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -748,6 +756,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: - - 0.50 0.50 0.33 0.33 - 0.50 0.50 0.33 mfence # CHECK-NEXT: - - 0.50 0.50 - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - minsd %xmm0, %xmm2 @@ -838,6 +847,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - 2.00 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s b/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s index 89f468e51b0..90e9b69a233 100644 --- a/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s +++ b/test/tools/llvm-mca/X86/SkylakeServer/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 2 10 0.50 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 4 0.50 maxsd %xmm0, %xmm2 # CHECK-NEXT: 2 9 0.50 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 3 3 0.50 * * U mfence # CHECK-NEXT: 1 4 0.50 minpd %xmm0, %xmm2 # CHECK-NEXT: 2 10 0.50 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 4 0.50 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 2 7 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 2 3 1.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 2 2 2.00 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 2 6 1.00 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 4 0.50 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 2 10 0.50 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.50 pmaxsw %xmm0, %xmm2 @@ -681,7 +689,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] -# CHECK-NEXT: - 38.00 103.08 82.08 62.67 62.67 14.00 94.08 1.75 4.67 +# CHECK-NEXT: - 38.00 103.58 82.58 63.50 63.50 14.00 97.58 2.25 5.00 # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions: @@ -748,6 +756,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: - - 0.50 0.50 0.33 0.33 - 0.50 0.50 0.33 mfence # CHECK-NEXT: - - 0.50 0.50 - - - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - minsd %xmm0, %xmm2 @@ -838,6 +847,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - 1.00 - - - - 1.00 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - 2.00 - - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - 0.50 0.50 - - - - - - pmaxsw %xmm0, %xmm2 diff --git a/test/tools/llvm-mca/X86/Znver1/resources-sse2.s b/test/tools/llvm-mca/X86/Znver1/resources-sse2.s index a4ecff87ae1..d6b9c025766 100644 --- a/test/tools/llvm-mca/X86/Znver1/resources-sse2.s +++ b/test/tools/llvm-mca/X86/Znver1/resources-sse2.s @@ -94,6 +94,8 @@ maxpd (%rax), %xmm2 maxsd %xmm0, %xmm2 maxsd (%rax), %xmm2 +mfence + minpd %xmm0, %xmm2 minpd (%rax), %xmm2 @@ -229,6 +231,9 @@ pcmpgtw (%rax), %xmm2 pextrw $1, %xmm0, %rcx +pinsrw $1, %rax, %xmm0 +pinsrw $1, (%rax), %xmm0 + pmaddwd %xmm0, %xmm2 pmaddwd (%rax), %xmm2 @@ -465,6 +470,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 10 1.00 * maxpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 maxsd %xmm0, %xmm2 # CHECK-NEXT: 1 10 1.00 * maxsd (%rax), %xmm2 +# CHECK-NEXT: 1 1 0.50 * * U mfence # CHECK-NEXT: 1 3 1.00 minpd %xmm0, %xmm2 # CHECK-NEXT: 1 10 1.00 * minpd (%rax), %xmm2 # CHECK-NEXT: 1 3 1.00 minsd %xmm0, %xmm2 @@ -555,6 +561,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.25 pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 1 8 0.50 * pcmpgtw (%rax), %xmm2 # CHECK-NEXT: 1 2 2.00 pextrw $1, %xmm0, %ecx +# CHECK-NEXT: 1 1 0.25 pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 1 8 0.50 * pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: 1 4 1.00 pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 1 11 1.00 * pmaddwd (%rax), %xmm2 # CHECK-NEXT: 1 1 0.25 pmaxsw %xmm0, %xmm2 @@ -683,7 +691,7 @@ xorpd (%rax), %xmm2 # CHECK: Resource pressure per iteration: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] -# CHECK-NEXT: 65.50 65.50 - - - - - 72.42 39.92 71.25 153.42 - +# CHECK-NEXT: 66.50 66.50 - - - - - 72.92 40.42 71.75 153.92 - # CHECK: Resource pressure by instruction: # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions: @@ -750,6 +758,7 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - maxsd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - maxsd (%rax), %xmm2 +# CHECK-NEXT: 0.50 0.50 - - - - - - - - - - mfence # CHECK-NEXT: - - - - - - - 1.00 - - - - minpd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - minpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 1.00 - - - - minsd %xmm0, %xmm2 @@ -840,6 +849,8 @@ xorpd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pcmpgtw (%rax), %xmm2 # CHECK-NEXT: - - - - - - - - 0.50 2.50 - - pextrw $1, %xmm0, %ecx +# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, %eax, %xmm0 +# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - pinsrw $1, (%rax), %xmm0 # CHECK-NEXT: - - - - - - - 1.00 - - - - pmaddwd %xmm0, %xmm2 # CHECK-NEXT: 0.50 0.50 - - - - - 1.00 - - - - pmaddwd (%rax), %xmm2 # CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - pmaxsw %xmm0, %xmm2