maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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
maxsd %xmm0, %xmm2
maxsd (%rax), %xmm2
+mfence
+
minpd %xmm0, %xmm2
minpd (%rax), %xmm2
pextrw $1, %xmm0, %rcx
+pinsrw $1, %rax, %xmm0
+pinsrw $1, (%rax), %xmm0
+
pmaddwd %xmm0, %xmm2
pmaddwd (%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
# 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
# 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:
# 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
# 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