vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1}
vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovm2b %k0, %zmm0
+vpmovm2w %k0, %zmm0
+
+vpmovb2m %zmm0, %k0
+vpmovw2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %zmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %zmm0
+# CHECK-NEXT: 1 1 0.33 vpmovb2m %zmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovw2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 9.33 46.33 - 94.33 33.00 33.00
+# CHECK-NEXT: - - 10.67 47.67 - 95.67 33.00 33.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 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %zmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %zmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %zmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %zmm0, %k0
vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1}
vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovm2b %k0, %xmm0
+vpmovm2w %k0, %xmm0
+
+vpmovm2b %k0, %ymm0
+vpmovm2w %k0, %ymm0
+
+vpmovb2m %xmm0, %k0
+vpmovw2m %xmm0, %k0
+
+vpmovb2m %ymm0, %k0
+vpmovw2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %xmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %xmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2b %k0, %ymm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2w %k0, %ymm0
+# CHECK-NEXT: 1 1 0.33 vpmovb2m %xmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovw2m %xmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovb2m %ymm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovw2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 10.67 99.67 - 141.67 63.00 63.00
+# CHECK-NEXT: - - 13.33 102.33 - 144.33 63.00 63.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 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %xmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %xmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2b %k0, %ymm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2w %k0, %ymm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %xmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %xmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovb2m %ymm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovw2m %ymm0, %k0
vxorps (%rax), %zmm17, %zmm19 {z}{k1}
vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vpmovm2d %k0, %zmm0
+vpmovm2q %k0, %zmm0
+
+vpmovd2m %zmm0, %k0
+vpmovq2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 1.00 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %zmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %zmm0
+# CHECK-NEXT: 1 1 0.33 vpmovd2m %zmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovq2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 8.33 40.33 - 85.33 37.50 37.50
+# CHECK-NEXT: - - 9.67 41.67 - 86.67 37.50 37.50
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %zmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %zmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %zmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovq2m %zmm0, %k0
vxorps (%rax), %ymm17, %ymm19 {z}{k1}
vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vpmovm2d %k0, %xmm0
+vpmovm2q %k0, %xmm0
+
+vpmovm2d %k0, %ymm0
+vpmovm2q %k0, %ymm0
+
+vpmovd2m %xmm0, %k0
+vpmovq2m %xmm0, %k0
+
+vpmovd2m %ymm0, %k0
+vpmovq2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 1.00 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %xmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %xmm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2d %k0, %ymm0
+# CHECK-NEXT: 1 1 0.33 vpmovm2q %k0, %ymm0
+# CHECK-NEXT: 1 1 0.33 vpmovd2m %xmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovq2m %xmm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovd2m %ymm0, %k0
+# CHECK-NEXT: 1 1 0.33 vpmovq2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SBDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 12.00 42.00 - 144.00 59.00 59.00
+# CHECK-NEXT: - - 14.67 44.67 - 146.67 59.00 59.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %xmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %xmm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2d %k0, %ymm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovm2q %k0, %ymm0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %xmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovq2m %xmm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovd2m %ymm0, %k0
+# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vpmovq2m %ymm0, %k0
vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1}
vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovm2b %k0, %zmm0
+vpmovm2w %k0, %zmm0
+
+vpmovb2m %zmm0, %k0
+vpmovw2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %zmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %zmm0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - ICXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 30.00 8.00 33.00 33.00 - 118.00 - - - -
+# CHECK-NEXT: - - 32.50 8.50 33.00 33.00 - 118.50 0.50 - - -
# 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 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %zmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %zmm0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %zmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %zmm0, %k0
vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1}
vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovm2b %k0, %xmm0
+vpmovm2w %k0, %xmm0
+
+vpmovm2b %k0, %ymm0
+vpmovm2w %k0, %ymm0
+
+vpmovb2m %xmm0, %k0
+vpmovw2m %xmm0, %k0
+
+vpmovb2m %ymm0, %k0
+vpmovw2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %ymm0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - ICXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 28.00 28.00 63.00 63.00 - 208.00 - - - -
+# CHECK-NEXT: - - 33.00 29.00 63.00 63.00 - 209.00 1.00 - - -
# 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 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2b %k0, %ymm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2w %k0, %ymm0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovb2m %ymm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovw2m %ymm0, %k0
vxorps (%rax), %zmm17, %zmm19 {z}{k1}
vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vpmovm2d %k0, %zmm0
+vpmovm2q %k0, %zmm0
+
+vpmovd2m %zmm0, %k0
+vpmovq2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %zmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %zmm0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %zmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - ICXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 57.00 4.00 37.50 37.50 - 83.00 - - - -
+# CHECK-NEXT: - - 59.50 4.50 37.50 37.50 - 83.50 0.50 - - -
# 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 - - - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %zmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %zmm0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %zmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovq2m %zmm0, %k0
vxorps (%rax), %ymm17, %ymm19 {z}{k1}
vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vpmovm2d %k0, %xmm0
+vpmovm2q %k0, %xmm0
+
+vpmovm2d %k0, %ymm0
+vpmovm2q %k0, %ymm0
+
+vpmovd2m %xmm0, %k0
+vpmovq2m %xmm0, %k0
+
+vpmovd2m %ymm0, %k0
+vpmovq2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %ymm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %ymm0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %ymm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - ICXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 67.00 67.00 59.00 59.00 - 70.00 - - - -
+# CHECK-NEXT: - - 72.00 68.00 59.00 59.00 - 71.00 1.00 - - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2d %k0, %ymm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - - - vpmovm2q %k0, %ymm0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovq2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovd2m %ymm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - - - vpmovq2m %ymm0, %k0
vpunpcklwd %zmm16, %zmm17, %zmm19 {z}{k1}
vpunpcklwd (%rax), %zmm17, %zmm19 {z}{k1}
+vpmovm2b %k0, %zmm0
+vpmovm2w %k0, %zmm0
+
+vpmovb2m %zmm0, %k0
+vpmovw2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %zmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %zmm0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %zmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 30.00 8.00 33.00 33.00 - 118.00 - -
+# CHECK-NEXT: - - 32.50 8.50 33.00 33.00 - 118.50 0.50 -
# 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 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %zmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %zmm0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %zmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %zmm0, %k0
vpunpcklwd %ymm16, %ymm17, %ymm19 {z}{k1}
vpunpcklwd (%rax), %ymm17, %ymm19 {z}{k1}
+vpmovm2b %k0, %xmm0
+vpmovm2w %k0, %xmm0
+
+vpmovm2b %k0, %ymm0
+vpmovm2w %k0, %ymm0
+
+vpmovb2m %xmm0, %k0
+vpmovw2m %xmm0, %k0
+
+vpmovb2m %ymm0, %k0
+vpmovw2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: 1 1 1.00 vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 1.00 * vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2b %k0, %ymm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2w %k0, %ymm0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovb2m %ymm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovw2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 28.00 28.00 63.00 63.00 - 208.00 - -
+# CHECK-NEXT: - - 33.00 29.00 63.00 63.00 - 209.00 1.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 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1}
# CHECK-NEXT: - - - - - - - 1.00 - - vpunpcklwd %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vpunpcklwd (%rax), %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2b %k0, %ymm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2w %k0, %ymm0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovb2m %ymm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovw2m %ymm0, %k0
vxorps (%rax), %zmm17, %zmm19 {z}{k1}
vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
+vpmovm2d %k0, %zmm0
+vpmovm2q %k0, %zmm0
+
+vpmovd2m %zmm0, %k0
+vpmovq2m %zmm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 0.50 vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %zmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %zmm0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %zmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %zmm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 57.00 4.00 37.50 37.50 - 83.00 - -
+# CHECK-NEXT: - - 59.50 4.50 37.50 37.50 - 83.50 0.50 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vxorps %zmm16, %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - 0.50 0.50 - 0.50 - - vxorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %zmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %zmm0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %zmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovq2m %zmm0, %k0
vxorps (%rax), %ymm17, %ymm19 {z}{k1}
vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
+vpmovm2d %k0, %xmm0
+vpmovm2q %k0, %xmm0
+
+vpmovm2d %k0, %ymm0
+vpmovm2q %k0, %ymm0
+
+vpmovd2m %xmm0, %k0
+vpmovq2m %xmm0, %k0
+
+vpmovd2m %ymm0, %k0
+vpmovq2m %ymm0, %k0
+
# CHECK: Instruction Info:
# CHECK-NEXT: [1]: #uOps
# CHECK-NEXT: [2]: Latency
# CHECK-NEXT: 1 1 0.33 vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 2 8 0.50 * vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %xmm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2d %k0, %ymm0
+# CHECK-NEXT: 1 1 0.25 vpmovm2q %k0, %ymm0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %xmm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovd2m %ymm0, %k0
+# CHECK-NEXT: 1 1 1.00 vpmovq2m %ymm0, %k0
# CHECK: Resources:
# CHECK-NEXT: [0] - SKXDivider
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 67.00 67.00 59.00 59.00 - 70.00 - -
+# CHECK-NEXT: - - 72.00 68.00 59.00 59.00 - 71.00 1.00 -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vxorps %ymm16, %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vxorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %xmm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2d %k0, %ymm0
+# CHECK-NEXT: - - 0.25 0.25 - - - 0.25 0.25 - vpmovm2q %k0, %ymm0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovq2m %xmm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovd2m %ymm0, %k0
+# CHECK-NEXT: - - 1.00 - - - - - - - vpmovq2m %ymm0, %k0