[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / tools / llvm-mca / X86 / Generic / resources-avx512bf16vl.s
blobe7432457715ef2971437effcb79e887c3f9f7fa9
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 %xmm16, %xmm17, %xmm19
5 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19
6 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19
7 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {k1}
8 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {k1}
9 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {k1}
10 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {k1}{z}
11 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {k1}{z}
12 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
14 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19
15 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19
16 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19
17 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {k1}
18 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {k1}
19 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {k1}
20 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {k1}{z}
21 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {k1}{z}
22 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
24 vcvtneps2bf16x %xmm16, %xmm19
25 vcvtneps2bf16x (%rax), %xmm19
26 vcvtneps2bf16 (%rax){1to4}, %xmm19
27 vcvtneps2bf16 %xmm16, %xmm19 {k1}
28 vcvtneps2bf16x (%rax), %xmm19 {k1}
29 vcvtneps2bf16 (%rax){1to4}, %xmm19 {k1}
30 vcvtneps2bf16 %xmm16, %xmm19 {k1}{z}
31 vcvtneps2bf16x (%rax), %xmm19 {k1}{z}
32 vcvtneps2bf16 (%rax){1to4}, %xmm19 {k1}{z}
34 vcvtneps2bf16 %ymm16, %xmm19
35 vcvtneps2bf16y (%rax), %xmm19
36 vcvtneps2bf16 (%rax){1to8}, %xmm19
37 vcvtneps2bf16 %ymm16, %xmm19 {k1}
38 vcvtneps2bf16y (%rax), %xmm19 {k1}
39 vcvtneps2bf16 (%rax){1to8}, %xmm19 {k1}
40 vcvtneps2bf16 %ymm16, %xmm19 {k1}{z}
41 vcvtneps2bf16y (%rax), %xmm19 {k1}{z}
42 vcvtneps2bf16 (%rax){1to8}, %xmm19 {k1}{z}
44 vdpbf16ps %xmm16, %xmm17, %xmm19
45 vdpbf16ps (%rax), %xmm17, %xmm19
46 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19
47 vdpbf16ps %xmm16, %xmm17, %xmm19 {k1}
48 vdpbf16ps (%rax), %xmm17, %xmm19 {k1}
49 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {k1}
50 vdpbf16ps %xmm16, %xmm17, %xmm19 {k1}{z}
51 vdpbf16ps (%rax), %xmm17, %xmm19 {k1}{z}
52 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {k1}{z}
54 vdpbf16ps %ymm16, %ymm17, %ymm19
55 vdpbf16ps (%rax), %ymm17, %ymm19
56 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19
57 vdpbf16ps %ymm16, %ymm17, %ymm19 {k1}
58 vdpbf16ps (%rax), %ymm17, %ymm19 {k1}
59 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {k1}
60 vdpbf16ps %ymm16, %ymm17, %ymm19 {k1}{z}
61 vdpbf16ps (%rax), %ymm17, %ymm19 {k1}{z}
62 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {k1}{z}
64 # CHECK: Instruction Info:
65 # CHECK-NEXT: [1]: #uOps
66 # CHECK-NEXT: [2]: Latency
67 # CHECK-NEXT: [3]: RThroughput
68 # CHECK-NEXT: [4]: MayLoad
69 # CHECK-NEXT: [5]: MayStore
70 # CHECK-NEXT: [6]: HasSideEffects (U)
72 # CHECK: [1] [2] [3] [4] [5] [6] Instructions:
73 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19
74 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm19
75 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19
76 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1}
77 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1}
78 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1}
79 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1} {z}
80 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1} {z}
81 # CHECK-NEXT: 3 10 1.00 * vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
82 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19
83 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm19
84 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19
85 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1}
86 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1}
87 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1}
88 # CHECK-NEXT: 2 4 1.00 vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1} {z}
89 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1} {z}
90 # CHECK-NEXT: 3 11 1.00 * vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
91 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm19
92 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm19
93 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm19
94 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm19 {%k1}
95 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm19 {%k1}
96 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1}
97 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %xmm16, %xmm19 {%k1} {z}
98 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16x (%rax), %xmm19 {%k1} {z}
99 # CHECK-NEXT: 3 10 1.00 * vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1} {z}
100 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19
101 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19
102 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19
103 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19 {%k1}
104 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19 {%k1}
105 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1}
106 # CHECK-NEXT: 2 4 1.00 vcvtneps2bf16 %ymm16, %xmm19 {%k1} {z}
107 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16y (%rax), %xmm19 {%k1} {z}
108 # CHECK-NEXT: 3 11 1.00 * vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1} {z}
109 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19
110 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19
111 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19
112 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1}
113 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19 {%k1}
114 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1}
115 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1} {z}
116 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %xmm17, %xmm19 {%k1} {z}
117 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
118 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19
119 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19
120 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19
121 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1}
122 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19 {%k1}
123 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1}
124 # CHECK-NEXT: 1 5 0.50 vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1} {z}
125 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax), %ymm17, %ymm19 {%k1} {z}
126 # CHECK-NEXT: 2 10 0.50 * vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
128 # CHECK: Resources:
129 # CHECK-NEXT: [0] - SBDivider
130 # CHECK-NEXT: [1] - SBFPDivider
131 # CHECK-NEXT: [2] - SBPort0
132 # CHECK-NEXT: [3] - SBPort1
133 # CHECK-NEXT: [4] - SBPort4
134 # CHECK-NEXT: [5] - SBPort5
135 # CHECK-NEXT: [6.0] - SBPort23
136 # CHECK-NEXT: [6.1] - SBPort23
138 # CHECK: Resource pressure per iteration:
139 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
140 # CHECK-NEXT: - - 9.00 45.00 - 36.00 18.00 18.00
142 # CHECK: Resource pressure by instruction:
143 # CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
144 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19
145 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19
146 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19
147 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1}
148 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1}
149 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1}
150 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %xmm16, %xmm17, %xmm19 {%k1} {z}
151 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %xmm17, %xmm19 {%k1} {z}
152 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
153 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19
154 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19
155 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19
156 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1}
157 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1}
158 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1}
159 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtne2ps2bf16 %ymm16, %ymm17, %ymm19 {%k1} {z}
160 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax), %ymm17, %ymm19 {%k1} {z}
161 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtne2ps2bf16 (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
162 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19
163 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19
164 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19
165 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19 {%k1}
166 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19 {%k1}
167 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1}
168 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %xmm16, %xmm19 {%k1} {z}
169 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16x (%rax), %xmm19 {%k1} {z}
170 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to4}, %xmm19 {%k1} {z}
171 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19
172 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19
173 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19
174 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19 {%k1}
175 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19 {%k1}
176 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1}
177 # CHECK-NEXT: - - - 1.00 - 1.00 - - vcvtneps2bf16 %ymm16, %xmm19 {%k1} {z}
178 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16y (%rax), %xmm19 {%k1} {z}
179 # CHECK-NEXT: - - - 1.00 - 1.00 0.50 0.50 vcvtneps2bf16 (%rax){1to8}, %xmm19 {%k1} {z}
180 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19
181 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19
182 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19
183 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1}
184 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19 {%k1}
185 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1}
186 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %xmm16, %xmm17, %xmm19 {%k1} {z}
187 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %xmm17, %xmm19 {%k1} {z}
188 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to4}, %xmm17, %xmm19 {%k1} {z}
189 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19
190 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19
191 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19
192 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1}
193 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19 {%k1}
194 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1}
195 # CHECK-NEXT: - - 0.50 0.50 - - - - vdpbf16ps %ymm16, %ymm17, %ymm19 {%k1} {z}
196 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax), %ymm17, %ymm19 {%k1} {z}
197 # CHECK-NEXT: - - 0.50 0.50 - - 0.50 0.50 vdpbf16ps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}