vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 11 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 7 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 9 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 9 1.00 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 94.67 58.67 85.17 85.17 13.00 235.67 2.00 1.67
+# CHECK-NEXT: - - 94.67 58.67 85.67 85.67 13.00 237.67 2.00 1.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 - - - - vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2
vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 1 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 8 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 1.00 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 1.00 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 75.67 88.67 5.00 166.67 78.00 78.00
+# CHECK-NEXT: - - 75.67 88.67 5.00 168.67 78.50 78.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 - 0.50 0.50 0.50 vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2
vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 12 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 202.67 89.67 97.17 97.17 5.00 280.67 28.00 1.67
+# CHECK-NEXT: - - 202.67 89.67 97.67 97.67 5.00 282.67 28.00 1.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 - - - - vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 - - - 0.50 - - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - 0.50 0.50 0.50 - 0.50 - - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2
vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 110.33 89.33 85.17 85.17 1.00 162.33 - 1.67
+# CHECK-NEXT: - - 110.33 89.33 85.67 85.67 1.00 164.33 - 1.67
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2
vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.50 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 3 1.00 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 2 10 1.00 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 2 10 1.00 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 3 1.00 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 110.33 89.33 85.17 85.17 1.00 162.33 - 1.67
+# CHECK-NEXT: - - 110.33 89.33 85.67 85.67 1.00 164.33 - 1.67
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 - - - - - - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - 0.50 0.50 0.50 0.50 - - - - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 1.00 - - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 1.00 - - vpermpd $1, %ymm0, %ymm2
vpcmpgtw %ymm0, %ymm1, %ymm2
vpcmpgtw (%rax), %ymm1, %ymm2
+vperm2i128 $1, %ymm0, %ymm1, %ymm2
+vperm2i128 $1, (%rax), %ymm1, %ymm2
+
vpermd %ymm0, %ymm1, %ymm2
vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 2 8 1.00 * vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 1 0.25 vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 8 0.50 * vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: 1 2 0.25 vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 1 9 0.50 * vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 2 0.25 vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 1 9 0.50 * vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: 1 100 0.25 vpermpd $1, %ymm0, %ymm2
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: 63.50 63.50 - - - - - 72.67 75.17 84.50 42.67 -
+# CHECK-NEXT: 64.00 64.00 - - - - - 73.17 75.67 85.00 43.17 -
# 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 - - 1.00 - vpcmpgtq (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpcmpgtw (%rax), %ymm1, %ymm2
+# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, %ymm0, %ymm1, %ymm2
+# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vperm2i128 $1, (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpermd %ymm0, %ymm1, %ymm2
# CHECK-NEXT: 0.50 0.50 - - - - - 0.25 0.25 0.25 0.25 - vpermd (%rax), %ymm1, %ymm2
# CHECK-NEXT: - - - - - - - 0.25 0.25 0.25 0.25 - vpermpd $1, %ymm0, %ymm2