1 # NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2 # RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
4 vcvtne2ps2bf16
%zmm16
, %zmm17
, %zmm19
5 vcvtne2ps2bf16
(%rax
), %zmm17
, %zmm19
6 vcvtne2ps2bf16
(%rax
){1to16
}, %zmm17
, %zmm19
7 vcvtne2ps2bf16
%zmm16
, %zmm17
, %zmm19
{k1
}
8 vcvtne2ps2bf16
(%rax
), %zmm17
, %zmm19
{k1
}
9 vcvtne2ps2bf16
(%rax
){1to16
}, %zmm17
, %zmm19
{k1
}
10 vcvtne2ps2bf16
%zmm16
, %zmm17
, %zmm19
{k1
}{z
}
11 vcvtne2ps2bf16
(%rax
), %zmm17
, %zmm19
{k1
}{z
}
12 vcvtne2ps2bf16
(%rax
){1to16
}, %zmm17
, %zmm19
{k1
}{z
}
14 vcvtneps2bf16
%zmm16
, %ymm19
15 vcvtneps2bf16
(%rax
), %ymm19
16 vcvtneps2bf16
(%rax
){1to16
}, %ymm19
17 vcvtneps2bf16
%zmm16
, %ymm19
{k1
}
18 vcvtneps2bf16
(%rax
), %ymm19
{k1
}
19 vcvtneps2bf16
(%rax
){1to16
}, %ymm19
{k1
}
20 vcvtneps2bf16
%zmm16
, %ymm19
{k1
}{z
}
21 vcvtneps2bf16
(%rax
), %ymm19
{k1
}{z
}
22 vcvtneps2bf16
(%rax
){1to16
}, %ymm19
{k1
}{z
}
24 vdpbf16ps
%zmm16
, %zmm17
, %zmm19
25 vdpbf16ps
(%rax
), %zmm17
, %zmm19
26 vdpbf16ps
(%rax
){1to16
}, %zmm17
, %zmm19
27 vdpbf16ps
%zmm16
, %zmm17
, %zmm19
{k1
}
28 vdpbf16ps
(%rax
), %zmm17
, %zmm19
{k1
}
29 vdpbf16ps
(%rax
){1to16
}, %zmm17
, %zmm19
{k1
}
30 vdpbf16ps
%zmm16
, %zmm17
, %zmm19
{k1
}{z
}
31 vdpbf16ps
(%rax
), %zmm17
, %zmm19
{k1
}{z
}
32 vdpbf16ps
(%rax
){1to16
}, %zmm17
, %zmm19
{k1
}{z
}
34 # CHECK: Instruction Info:
35 # CHECK-NEXT: [1]: #uOps
36 # CHECK-NEXT: [2]: Latency
37 # CHECK-NEXT: [3]: RThroughput
38 # CHECK-NEXT: [4]: MayLoad
39 # CHECK-NEXT: [5]: MayStore
40 # CHECK-NEXT: [6]: HasSideEffects (U)
42 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
43 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19
44 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %zmm17, %zmm19
45 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19
46 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19 {%k1}
47 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %zmm17, %zmm19 {%k1}
48 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19 {%k1}
49 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19 {%k1} {z}
50 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %zmm17, %zmm19 {%k1} {z}
51 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
52 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %zmm16, %ymm19
53 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax), %ymm19
54 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to16}, %ymm19
55 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %zmm16, %ymm19 {%k1}
56 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax), %ymm19 {%k1}
57 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to16}, %ymm19 {%k1}
58 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %zmm16, %ymm19 {%k1} {z}
59 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax), %ymm19 {%k1} {z}
60 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to16}, %ymm19 {%k1} {z}
61 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %zmm16, %zmm17, %zmm19
62 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %zmm17, %zmm19
63 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to16}, %zmm17, %zmm19
64 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %zmm16, %zmm17, %zmm19 {%k1}
65 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %zmm17, %zmm19 {%k1}
66 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to16}, %zmm17, %zmm19 {%k1}
67 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %zmm16, %zmm17, %zmm19 {%k1} {z}
68 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %zmm17, %zmm19 {%k1} {z}
69 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
72 # CHECK-NEXT: [0] - SBDivider
73 # CHECK-NEXT: [1] - SBFPDivider
74 # CHECK-NEXT: [2] - SBPort0
75 # CHECK-NEXT: [3] - SBPort1
76 # CHECK-NEXT: [4] - SBPort4
77 # CHECK-NEXT: [5] - SBPort5
78 # CHECK-NEXT: [6.0] - SBPort23
79 # CHECK-NEXT: [6.1] - SBPort23
81 # CHECK: Resource pressure per iteration:
82 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
83 # CHECK-NEXT: - - 4.50 22.50 - 18.00 9.00 9.00
85 # CHECK: Resource pressure by instruction:
86 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
87 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19
88 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %zmm17, %zmm19
89 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19
90 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19 {%k1}
91 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %zmm17, %zmm19 {%k1}
92 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19 {%k1}
93 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %zmm16, %zmm17, %zmm19 {%k1} {z}
94 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %zmm17, %zmm19 {%k1} {z}
95 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
96 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %zmm16, %ymm19
97 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax), %ymm19
98 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to16}, %ymm19
99 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %zmm16, %ymm19 {%k1}
100 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax), %ymm19 {%k1}
101 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to16}, %ymm19 {%k1}
102 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %zmm16, %ymm19 {%k1} {z}
103 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax), %ymm19 {%k1} {z}
104 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to16}, %ymm19 {%k1} {z}
105 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %zmm16, %zmm17, %zmm19
106 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %zmm17, %zmm19
107 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to16}, %zmm17, %zmm19
108 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %zmm16, %zmm17, %zmm19 {%k1}
109 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %zmm17, %zmm19 {%k1}
110 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to16}, %zmm17, %zmm19 {%k1}
111 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %zmm16, %zmm17, %zmm19 {%k1} {z}
112 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %zmm17, %zmm19 {%k1} {z}
113 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}