kunpckdq %k0, %k1, %k2
kunpckwd %k0, %k1, %k2
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+vdbpsadbw $0, (%rax), %zmm17, %zmm19
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {k1}
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {z}{k1}
+
vmovdqu8 %zmm16, %zmm19
vmovdqu8 (%rax), %zmm19
vmovdqu8 %zmm16, (%rax)
# CHECK-NEXT: 1 1 1.00 kshiftrq $2, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kunpckdq %k0, %k1, %k2
# CHECK-NEXT: 1 1 1.00 kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: 1 7 0.50 * vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %zmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 14.00 47.00 4.00 157.00 52.50 52.50
+# CHECK-NEXT: - - 20.00 47.00 4.00 157.00 54.00 54.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
# CHECK-NEXT: - - - - - 1.00 - - kshiftrq $2, %k1, %k2
# CHECK-NEXT: - - - - - 1.00 - - kunpckdq %k0, %k1, %k2
# CHECK-NEXT: - - - - - 1.00 - - kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - 0.50 - - vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %zmm16, (%rax)
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+vdbpsadbw $0, (%rax), %xmm17, %xmm19
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {k1}
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+vdbpsadbw $0, (%rax), %ymm17, %ymm19
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {k1}
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {z}{k1}
+
vmovdqu8 %xmm16, %xmm19
vmovdqu8 (%rax), %xmm19
vmovdqu8 %xmm16, (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 11 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 11 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 11 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 5 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 12 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: 1 6 0.50 * vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: 1 1 1.00 * vmovdqu8 %xmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
-# CHECK-NEXT: - - 18.67 132.67 8.00 248.67 105.00 105.00
+# CHECK-NEXT: - - 30.67 132.67 8.00 248.67 108.00 108.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - 1.00 - - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: - - - - - - 0.50 0.50 vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: - - - - 1.00 - 0.50 0.50 vmovdqu8 %xmm16, (%rax)
kunpckdq %k0, %k1, %k2
kunpckwd %k0, %k1, %k2
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+vdbpsadbw $0, (%rax), %zmm17, %zmm19
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {k1}
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {z}{k1}
+
vmovdqu8 %zmm16, %zmm19
vmovdqu8 (%rax), %zmm19
vmovdqu8 %zmm16, (%rax)
# CHECK-NEXT: 1 4 1.00 kshiftrq $2, %k1, %k2
# CHECK-NEXT: 1 4 1.00 kunpckdq %k0, %k1, %k2
# CHECK-NEXT: 1 4 1.00 kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: 2 8 0.50 * vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: 5 2 2.00 * vmovdqu8 %zmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 38.00 11.00 52.50 52.50 6.00 183.00 - 2.00 - -
+# CHECK-NEXT: - - 38.00 11.00 54.00 54.00 6.00 189.00 - 2.00 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
# CHECK-NEXT: - - - - - - - 1.00 - - - - kshiftrq $2, %k1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - - - kunpckdq %k0, %k1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - - - kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - - - vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: - - - 0.50 0.67 0.67 2.00 0.50 - 0.67 - - vmovdqu8 %zmm16, (%rax)
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -instruction-tables < %s | FileCheck %s
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+vdbpsadbw $0, (%rax), %xmm17, %xmm19
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {k1}
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+vdbpsadbw $0, (%rax), %ymm17, %ymm19
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {k1}
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {z}{k1}
+
vmovdqu8 %xmm16, %xmm19
vmovdqu8 (%rax), %xmm19
vmovdqu8 %xmm16, (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: 2 7 0.50 * vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: 2 1 1.00 * vmovdqu8 %xmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11]
-# CHECK-NEXT: - - 41.33 89.33 103.67 103.67 8.00 293.33 - 2.67 - -
+# CHECK-NEXT: - - 41.33 89.33 106.67 106.67 8.00 305.33 - 2.67 - -
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] Instructions:
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - - - vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - - - vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - - - vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 - - vmovdqu8 %xmm16, (%rax)
kunpckdq %k0, %k1, %k2
kunpckwd %k0, %k1, %k2
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+vdbpsadbw $0, (%rax), %zmm17, %zmm19
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {k1}
+vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %zmm17, %zmm19 {z}{k1}
+
vmovdqu8 %zmm16, %zmm19
vmovdqu8 (%rax), %zmm19
vmovdqu8 %zmm16, (%rax)
# CHECK-NEXT: 1 4 1.00 kshiftrq $2, %k1, %k2
# CHECK-NEXT: 1 4 1.00 kunpckdq %k0, %k1, %k2
# CHECK-NEXT: 1 4 1.00 kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.50 vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: 2 8 0.50 * vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: 5 2 2.00 * vmovdqu8 %zmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 38.00 11.00 52.50 52.50 6.00 183.00 - 2.00
+# CHECK-NEXT: - - 38.00 11.00 54.00 54.00 6.00 189.00 - 2.00
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
# CHECK-NEXT: - - - - - - - 1.00 - - kshiftrq $2, %k1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - kunpckdq %k0, %k1, %k2
# CHECK-NEXT: - - - - - - - 1.00 - - kunpckwd %k0, %k1, %k2
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %zmm17, %zmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %zmm16, %zmm17, %zmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %zmm17, %zmm19 {%k1} {z}
# CHECK-NEXT: - - 0.50 - - - - 0.50 - - vmovdqu8 %zmm16, %zmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vmovdqu8 (%rax), %zmm19
# CHECK-NEXT: - - - 0.50 0.67 0.67 2.00 0.50 - 0.67 vmovdqu8 %zmm16, (%rax)
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=skylake-avx512 -instruction-tables < %s | FileCheck %s
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+vdbpsadbw $0, (%rax), %xmm17, %xmm19
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {k1}
+vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {z}{k1}
+vdbpsadbw $0, (%rax), %xmm17, %xmm19 {z}{k1}
+
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+vdbpsadbw $0, (%rax), %ymm17, %ymm19
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {k1}
+vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {z}{k1}
+vdbpsadbw $0, (%rax), %ymm17, %ymm19 {z}{k1}
+
vmovdqu8 %xmm16, %xmm19
vmovdqu8 (%rax), %xmm19
vmovdqu8 %xmm16, (%rax)
# CHECK-NEXT: [6]: HasSideEffects (U)
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 2 9 1.00 * vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: 1 3 1.00 vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: 2 10 1.00 * vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: 1 1 0.33 vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: 2 7 0.50 * vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: 2 1 1.00 * vmovdqu8 %xmm16, (%rax)
# CHECK: Resource pressure per iteration:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9]
-# CHECK-NEXT: - - 41.33 37.33 103.67 103.67 8.00 345.33 - 2.67
+# CHECK-NEXT: - - 41.33 37.33 106.67 106.67 8.00 357.33 - 2.67
# CHECK: Resource pressure by instruction:
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6] [7] [8] [9] Instructions:
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %xmm17, %xmm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %xmm16, %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %xmm17, %xmm19 {%k1} {z}
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %ymm17, %ymm19
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1}
+# CHECK-NEXT: - - - - - - - 1.00 - - vdbpsadbw $0, %ymm16, %ymm17, %ymm19 {%k1} {z}
+# CHECK-NEXT: - - - - 0.50 0.50 - 1.00 - - vdbpsadbw $0, (%rax), %ymm17, %ymm19 {%k1} {z}
# CHECK-NEXT: - - 0.33 0.33 - - - 0.33 - - vmovdqu8 %xmm16, %xmm19
# CHECK-NEXT: - - 0.33 0.33 0.50 0.50 - 0.33 - - vmovdqu8 (%rax), %xmm19
# CHECK-NEXT: - - - - 0.33 0.33 1.00 - - 0.33 vmovdqu8 %xmm16, (%rax)