Skip to content

Commit c636f69

Browse files
committed
[X86] Add more avx512 instrutions to llvm-mca resource tests
1 parent 3adcc78 commit c636f69

File tree

12 files changed

+3133
-12
lines changed

12 files changed

+3133
-12
lines changed

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512.s

Lines changed: 345 additions & 1 deletion
Large diffs are not rendered by default.

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bw.s

Lines changed: 212 additions & 1 deletion
Large diffs are not rendered by default.

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512bwvl.s

Lines changed: 313 additions & 1 deletion
Large diffs are not rendered by default.

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dq.s

Lines changed: 93 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
22
# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=x86-64 -instruction-tables < %s | FileCheck %s
33

4+
kaddb %k0, %k1, %k2
5+
kaddw %k0, %k1, %k2
6+
kandb %k0, %k1, %k2
7+
kandnb %k0, %k1, %k2
8+
korb %k0, %k1, %k2
9+
kxnorb %k0, %k1, %k2
10+
kxorb %k0, %k1, %k2
11+
kshiftlb $2, %k1, %k2
12+
kshiftrb $2, %k1, %k2
13+
414
vandnpd %zmm16, %zmm17, %zmm19
515
vandnpd (%rax), %zmm17, %zmm19
616
vandnpd (%rax){1to8}, %zmm17, %zmm19
@@ -81,6 +91,30 @@ vorps %zmm16, %zmm17, %zmm19 {z}{k1}
8191
vorps (%rax), %zmm17, %zmm19 {z}{k1}
8292
vorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
8393

94+
vfpclasspd $0xab, %zmm16, %k1
95+
vfpclasspdz $0xab, (%rax), %k1
96+
vfpclasspdz $0xab, (%rax){1to8}, %k1
97+
vfpclasspd $0xab, %zmm16, %k1 {k2}
98+
vfpclasspdz $0xab, (%rax), %k1 {k2}
99+
vfpclasspdz $0xab, (%rax){1to8}, %k1 {k2}
100+
101+
vfpclassps $0xab, %zmm16, %k1
102+
vfpclasspsz $0xab, (%rax), %k1
103+
vfpclasspsz $0xab, (%rax){1to16}, %k1
104+
vfpclassps $0xab, %zmm16, %k1 {k2}
105+
vfpclasspsz $0xab, (%rax), %k1 {k2}
106+
vfpclasspsz $0xab, (%rax){1to16}, %k1 {k2}
107+
108+
vfpclasssd $0xab, %xmm16, %k1
109+
vfpclasssd $0xab, (%rax), %k1
110+
vfpclasssd $0xab, %xmm16, %k1 {k2}
111+
vfpclasssd $0xab, (%rax), %k1 {k2}
112+
113+
vfpclassss $0xab, %xmm16, %k1
114+
vfpclassss $0xab, (%rax), %k1
115+
vfpclassss $0xab, %xmm16, %k1 {k2}
116+
vfpclassss $0xab, (%rax), %k1 {k2}
117+
84118
vpmullq %zmm16, %zmm17, %zmm19
85119
vpmullq (%rax), %zmm17, %zmm19
86120
vpmullq %zmm16, %zmm17, %zmm19 {k1}
@@ -117,6 +151,15 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
117151
# CHECK-NEXT: [6]: HasSideEffects (U)
118152

119153
# CHECK: [1] [2] [3] [4] [5] [6] Instructions:
154+
# CHECK-NEXT: 1 1 0.33 kaddb %k0, %k1, %k2
155+
# CHECK-NEXT: 1 1 0.33 kaddw %k0, %k1, %k2
156+
# CHECK-NEXT: 1 1 0.33 kandb %k0, %k1, %k2
157+
# CHECK-NEXT: 1 1 0.33 kandnb %k0, %k1, %k2
158+
# CHECK-NEXT: 1 1 0.33 korb %k0, %k1, %k2
159+
# CHECK-NEXT: 1 1 0.33 kxnorb %k0, %k1, %k2
160+
# CHECK-NEXT: 1 1 0.33 kxorb %k0, %k1, %k2
161+
# CHECK-NEXT: 1 1 1.00 kshiftlb $2, %k1, %k2
162+
# CHECK-NEXT: 1 1 1.00 kshiftrb $2, %k1, %k2
120163
# CHECK-NEXT: 1 1 1.00 vandnpd %zmm16, %zmm17, %zmm19
121164
# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax), %zmm17, %zmm19
122165
# CHECK-NEXT: 2 8 1.00 * vandnpd (%rax){1to8}, %zmm17, %zmm19
@@ -189,6 +232,26 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
189232
# CHECK-NEXT: 1 1 1.00 vorps %zmm16, %zmm17, %zmm19 {%k1} {z}
190233
# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %zmm17, %zmm19 {%k1} {z}
191234
# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
235+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %zmm16, %k1
236+
# CHECK-NEXT: 2 10 1.00 * vfpclasspdz $171, (%rax), %k1
237+
# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to8}, %k1
238+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %zmm16, %k1 {%k2}
239+
# CHECK-NEXT: 2 10 1.00 * vfpclasspdz $171, (%rax), %k1 {%k2}
240+
# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
241+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %zmm16, %k1
242+
# CHECK-NEXT: 2 10 1.00 * vfpclasspsz $171, (%rax), %k1
243+
# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to16}, %k1
244+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %zmm16, %k1 {%k2}
245+
# CHECK-NEXT: 2 10 1.00 * vfpclasspsz $171, (%rax), %k1 {%k2}
246+
# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to16}, %k1 {%k2}
247+
# CHECK-NEXT: 1 3 1.00 vfpclasssd $171, %xmm16, %k1
248+
# CHECK-NEXT: 2 9 1.00 * vfpclasssd $171, (%rax), %k1
249+
# CHECK-NEXT: 1 3 1.00 vfpclasssd $171, %xmm16, %k1 {%k2}
250+
# CHECK-NEXT: 2 9 1.00 * vfpclasssd $171, (%rax), %k1 {%k2}
251+
# CHECK-NEXT: 1 3 1.00 vfpclassss $171, %xmm16, %k1
252+
# CHECK-NEXT: 2 9 1.00 * vfpclassss $171, (%rax), %k1
253+
# CHECK-NEXT: 1 3 1.00 vfpclassss $171, %xmm16, %k1 {%k2}
254+
# CHECK-NEXT: 2 9 1.00 * vfpclassss $171, (%rax), %k1 {%k2}
192255
# CHECK-NEXT: 1 5 1.00 vpmullq %zmm16, %zmm17, %zmm19
193256
# CHECK-NEXT: 2 12 1.00 * vpmullq (%rax), %zmm17, %zmm19
194257
# CHECK-NEXT: 1 5 1.00 vpmullq %zmm16, %zmm17, %zmm19 {%k1}
@@ -226,10 +289,19 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
226289

227290
# CHECK: Resource pressure per iteration:
228291
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
229-
# CHECK-NEXT: - - 6.00 18.00 - 81.00 31.50 31.50
292+
# CHECK-NEXT: - - 8.33 40.33 - 85.33 37.50 37.50
230293

231294
# CHECK: Resource pressure by instruction:
232295
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
296+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kaddb %k0, %k1, %k2
297+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kaddw %k0, %k1, %k2
298+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kandb %k0, %k1, %k2
299+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kandnb %k0, %k1, %k2
300+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - korb %k0, %k1, %k2
301+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxnorb %k0, %k1, %k2
302+
# CHECK-NEXT: - - 0.33 0.33 - 0.33 - - kxorb %k0, %k1, %k2
303+
# CHECK-NEXT: - - - - - 1.00 - - kshiftlb $2, %k1, %k2
304+
# CHECK-NEXT: - - - - - 1.00 - - kshiftrb $2, %k1, %k2
233305
# CHECK-NEXT: - - - - - 1.00 - - vandnpd %zmm16, %zmm17, %zmm19
234306
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax), %zmm17, %zmm19
235307
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vandnpd (%rax){1to8}, %zmm17, %zmm19
@@ -302,6 +374,26 @@ vxorps (%rax){1to16}, %zmm17, %zmm19 {z}{k1}
302374
# CHECK-NEXT: - - - - - 1.00 - - vorps %zmm16, %zmm17, %zmm19 {%k1} {z}
303375
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %zmm17, %zmm19 {%k1} {z}
304376
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to16}, %zmm17, %zmm19 {%k1} {z}
377+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %zmm16, %k1
378+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdz $171, (%rax), %k1
379+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to8}, %k1
380+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %zmm16, %k1 {%k2}
381+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdz $171, (%rax), %k1 {%k2}
382+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to8}, %k1 {%k2}
383+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %zmm16, %k1
384+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsz $171, (%rax), %k1
385+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to16}, %k1
386+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %zmm16, %k1 {%k2}
387+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsz $171, (%rax), %k1 {%k2}
388+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to16}, %k1 {%k2}
389+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasssd $171, %xmm16, %k1
390+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasssd $171, (%rax), %k1
391+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasssd $171, %xmm16, %k1 {%k2}
392+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasssd $171, (%rax), %k1 {%k2}
393+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassss $171, %xmm16, %k1
394+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassss $171, (%rax), %k1
395+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassss $171, %xmm16, %k1 {%k2}
396+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassss $171, (%rax), %k1 {%k2}
305397
# CHECK-NEXT: - - 1.00 - - - - - vpmullq %zmm16, %zmm17, %zmm19
306398
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %zmm17, %zmm19
307399
# CHECK-NEXT: - - 1.00 - - - - - vpmullq %zmm16, %zmm17, %zmm19 {%k1}

llvm/test/tools/llvm-mca/X86/Generic/resources-avx512dqvl.s

Lines changed: 77 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,6 +121,34 @@ vorps %ymm16, %ymm17, %ymm19 {z}{k1}
121121
vorps (%rax), %ymm17, %ymm19 {z}{k1}
122122
vorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
123123

124+
vfpclasspd $0xab, %xmm16, %k1
125+
vfpclasspdx $0xab, (%rax), %k1
126+
vfpclasspdx $0xab, (%rax){1to2}, %k1
127+
vfpclasspd $0xab, %xmm16, %k1 {k2}
128+
vfpclasspdx $0xab, (%rax), %k1 {k2}
129+
vfpclasspdx $0xab, (%rax){1to2}, %k1 {k2}
130+
131+
vfpclasspd $0xab, %ymm16, %k1
132+
vfpclasspdy $0xab, (%rax), %k1
133+
vfpclasspdy $0xab, (%rax){1to4}, %k1
134+
vfpclasspd $0xab, %ymm16, %k1 {k2}
135+
vfpclasspdy $0xab, (%rax), %k1 {k2}
136+
vfpclasspdy $0xab, (%rax){1to4}, %k1 {k2}
137+
138+
vfpclassps $0xab, %xmm16, %k1
139+
vfpclasspsx $0xab, (%rax), %k1
140+
vfpclasspsx $0xab, (%rax){1to4}, %k1
141+
vfpclassps $0xab, %xmm16, %k1 {k2}
142+
vfpclasspsx $0xab, (%rax), %k1 {k2}
143+
vfpclasspsx $0xab, (%rax){1to4}, %k1 {k2}
144+
145+
vfpclassps $0xab, %ymm16, %k1
146+
vfpclasspsy $0xab, (%rax), %k1
147+
vfpclasspsy $0xab, (%rax){1to8}, %k1
148+
vfpclassps $0xab, %ymm16, %k1 {k2}
149+
vfpclasspsy $0xab, (%rax), %k1 {k2}
150+
vfpclasspsy $0xab, (%rax){1to8}, %k1 {k2}
151+
124152
vpmullq %xmm16, %xmm17, %xmm19
125153
vpmullq (%rax), %xmm17, %xmm19
126154
vpmullq %xmm16, %xmm17, %xmm19 {k1}
@@ -292,6 +320,30 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
292320
# CHECK-NEXT: 1 1 1.00 vorps %ymm16, %ymm17, %ymm19 {%k1} {z}
293321
# CHECK-NEXT: 2 8 1.00 * vorps (%rax), %ymm17, %ymm19 {%k1} {z}
294322
# CHECK-NEXT: 2 8 1.00 * vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
323+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %xmm16, %k1
324+
# CHECK-NEXT: 2 9 1.00 * vfpclasspdx $171, (%rax), %k1
325+
# CHECK-NEXT: 2 9 1.00 * vfpclasspd $171, (%rax){1to2}, %k1
326+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %xmm16, %k1 {%k2}
327+
# CHECK-NEXT: 2 9 1.00 * vfpclasspdx $171, (%rax), %k1 {%k2}
328+
# CHECK-NEXT: 2 9 1.00 * vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
329+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %ymm16, %k1
330+
# CHECK-NEXT: 2 10 1.00 * vfpclasspdy $171, (%rax), %k1
331+
# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to4}, %k1
332+
# CHECK-NEXT: 1 3 1.00 vfpclasspd $171, %ymm16, %k1 {%k2}
333+
# CHECK-NEXT: 2 10 1.00 * vfpclasspdy $171, (%rax), %k1 {%k2}
334+
# CHECK-NEXT: 2 10 1.00 * vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
335+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %xmm16, %k1
336+
# CHECK-NEXT: 2 9 1.00 * vfpclasspsx $171, (%rax), %k1
337+
# CHECK-NEXT: 2 9 1.00 * vfpclassps $171, (%rax){1to4}, %k1
338+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %xmm16, %k1 {%k2}
339+
# CHECK-NEXT: 2 9 1.00 * vfpclasspsx $171, (%rax), %k1 {%k2}
340+
# CHECK-NEXT: 2 9 1.00 * vfpclassps $171, (%rax){1to4}, %k1 {%k2}
341+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %ymm16, %k1
342+
# CHECK-NEXT: 2 10 1.00 * vfpclasspsy $171, (%rax), %k1
343+
# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to8}, %k1
344+
# CHECK-NEXT: 1 3 1.00 vfpclassps $171, %ymm16, %k1 {%k2}
345+
# CHECK-NEXT: 2 10 1.00 * vfpclasspsy $171, (%rax), %k1 {%k2}
346+
# CHECK-NEXT: 2 10 1.00 * vfpclassps $171, (%rax){1to8}, %k1 {%k2}
295347
# CHECK-NEXT: 1 5 1.00 vpmullq %xmm16, %xmm17, %xmm19
296348
# CHECK-NEXT: 2 11 1.00 * vpmullq (%rax), %xmm17, %xmm19
297349
# CHECK-NEXT: 1 5 1.00 vpmullq %xmm16, %xmm17, %xmm19 {%k1}
@@ -353,7 +405,7 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
353405

354406
# CHECK: Resource pressure per iteration:
355407
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1]
356-
# CHECK-NEXT: - - 12.00 18.00 - 144.00 51.00 51.00
408+
# CHECK-NEXT: - - 12.00 42.00 - 144.00 59.00 59.00
357409

358410
# CHECK: Resource pressure by instruction:
359411
# CHECK-NEXT: [0] [1] [2] [3] [4] [5] [6.0] [6.1] Instructions:
@@ -465,6 +517,30 @@ vxorps (%rax){1to8}, %ymm17, %ymm19 {z}{k1}
465517
# CHECK-NEXT: - - - - - 1.00 - - vorps %ymm16, %ymm17, %ymm19 {%k1} {z}
466518
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax), %ymm17, %ymm19 {%k1} {z}
467519
# CHECK-NEXT: - - - - - 1.00 0.50 0.50 vorps (%rax){1to8}, %ymm17, %ymm19 {%k1} {z}
520+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %xmm16, %k1
521+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdx $171, (%rax), %k1
522+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to2}, %k1
523+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %xmm16, %k1 {%k2}
524+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdx $171, (%rax), %k1 {%k2}
525+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to2}, %k1 {%k2}
526+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %ymm16, %k1
527+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdy $171, (%rax), %k1
528+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to4}, %k1
529+
# CHECK-NEXT: - - - 1.00 - - - - vfpclasspd $171, %ymm16, %k1 {%k2}
530+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspdy $171, (%rax), %k1 {%k2}
531+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspd $171, (%rax){1to4}, %k1 {%k2}
532+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %xmm16, %k1
533+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsx $171, (%rax), %k1
534+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to4}, %k1
535+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %xmm16, %k1 {%k2}
536+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsx $171, (%rax), %k1 {%k2}
537+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to4}, %k1 {%k2}
538+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %ymm16, %k1
539+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsy $171, (%rax), %k1
540+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to8}, %k1
541+
# CHECK-NEXT: - - - 1.00 - - - - vfpclassps $171, %ymm16, %k1 {%k2}
542+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclasspsy $171, (%rax), %k1 {%k2}
543+
# CHECK-NEXT: - - - 1.00 - - 0.50 0.50 vfpclassps $171, (%rax){1to8}, %k1 {%k2}
468544
# CHECK-NEXT: - - 1.00 - - - - - vpmullq %xmm16, %xmm17, %xmm19
469545
# CHECK-NEXT: - - 1.00 - - - 0.50 0.50 vpmullq (%rax), %xmm17, %xmm19
470546
# CHECK-NEXT: - - 1.00 - - - - - vpmullq %xmm16, %xmm17, %xmm19 {%k1}

0 commit comments

Comments
 (0)