xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512ifmavl.s (revision 421bdc119a64bdafda41d7149d42bf4018992a9d)
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
3
4vpmadd52huq     %xmm16, %xmm17, %xmm19
5vpmadd52huq     (%rdi), %xmm17, %xmm19
6vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19
7vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1}
8vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1}
9vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
10vpmadd52huq     %xmm16, %xmm17, %xmm19 {%k1} {z}
11vpmadd52huq     (%rdi), %xmm17, %xmm19 {%k1} {z}
12vpmadd52huq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
13
14vpmadd52huq     %ymm16, %ymm17, %ymm19
15vpmadd52huq     (%rdi), %ymm17, %ymm19
16vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19
17vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1}
18vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1}
19vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
20vpmadd52huq     %ymm16, %ymm17, %ymm19 {%k1} {z}
21vpmadd52huq     (%rdi), %ymm17, %ymm19 {%k1} {z}
22vpmadd52huq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
23
24vpmadd52luq     %xmm16, %xmm17, %xmm19
25vpmadd52luq     (%rdi), %xmm17, %xmm19
26vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19
27vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1}
28vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1}
29vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1}
30vpmadd52luq     %xmm16, %xmm17, %xmm19 {%k1} {z}
31vpmadd52luq     (%rdi), %xmm17, %xmm19 {%k1} {z}
32vpmadd52luq     (%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
33
34vpmadd52luq     %ymm16, %ymm17, %ymm19
35vpmadd52luq     (%rdi), %ymm17, %ymm19
36vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19
37vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1}
38vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1}
39vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1}
40vpmadd52luq     %ymm16, %ymm17, %ymm19 {%k1} {z}
41vpmadd52luq     (%rdi), %ymm17, %ymm19 {%k1} {z}
42vpmadd52luq     (%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
43
44# CHECK:      Instruction Info:
45# CHECK-NEXT: [1]: #uOps
46# CHECK-NEXT: [2]: Latency
47# CHECK-NEXT: [3]: RThroughput
48# CHECK-NEXT: [4]: MayLoad
49# CHECK-NEXT: [5]: MayStore
50# CHECK-NEXT: [6]: HasSideEffects (U)
51
52# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
53# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%xmm16, %xmm17, %xmm19
54# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi), %xmm17, %xmm19
55# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19
56# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%xmm16, %xmm17, %xmm19 {%k1}
57# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi), %xmm17, %xmm19 {%k1}
58# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19 {%k1}
59# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%xmm16, %xmm17, %xmm19 {%k1} {z}
60# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi), %xmm17, %xmm19 {%k1} {z}
61# CHECK-NEXT:  2      11    1.00    *                   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
62# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%ymm16, %ymm17, %ymm19
63# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi), %ymm17, %ymm19
64# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19
65# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%ymm16, %ymm17, %ymm19 {%k1}
66# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi), %ymm17, %ymm19 {%k1}
67# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19 {%k1}
68# CHECK-NEXT:  1      5     1.00                        vpmadd52huq	%ymm16, %ymm17, %ymm19 {%k1} {z}
69# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi), %ymm17, %ymm19 {%k1} {z}
70# CHECK-NEXT:  2      12    1.00    *                   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
71# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%xmm16, %xmm17, %xmm19
72# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi), %xmm17, %xmm19
73# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19
74# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%xmm16, %xmm17, %xmm19 {%k1}
75# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi), %xmm17, %xmm19 {%k1}
76# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19 {%k1}
77# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%xmm16, %xmm17, %xmm19 {%k1} {z}
78# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi), %xmm17, %xmm19 {%k1} {z}
79# CHECK-NEXT:  2      11    1.00    *                   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
80# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%ymm16, %ymm17, %ymm19
81# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi), %ymm17, %ymm19
82# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19
83# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%ymm16, %ymm17, %ymm19 {%k1}
84# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi), %ymm17, %ymm19 {%k1}
85# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19 {%k1}
86# CHECK-NEXT:  1      5     1.00                        vpmadd52luq	%ymm16, %ymm17, %ymm19 {%k1} {z}
87# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi), %ymm17, %ymm19 {%k1} {z}
88# CHECK-NEXT:  2      12    1.00    *                   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
89
90# CHECK:      Resources:
91# CHECK-NEXT: [0]   - SBDivider
92# CHECK-NEXT: [1]   - SBFPDivider
93# CHECK-NEXT: [2]   - SBPort0
94# CHECK-NEXT: [3]   - SBPort1
95# CHECK-NEXT: [4]   - SBPort4
96# CHECK-NEXT: [5]   - SBPort5
97# CHECK-NEXT: [6.0] - SBPort23
98# CHECK-NEXT: [6.1] - SBPort23
99
100# CHECK:      Resource pressure per iteration:
101# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
102# CHECK-NEXT:  -      -     36.00   -      -      -     12.00  12.00
103
104# CHECK:      Resource pressure by instruction:
105# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
106# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%xmm16, %xmm17, %xmm19
107# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %xmm17, %xmm19
108# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19
109# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%xmm16, %xmm17, %xmm19 {%k1}
110# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %xmm17, %xmm19 {%k1}
111# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19 {%k1}
112# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%xmm16, %xmm17, %xmm19 {%k1} {z}
113# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %xmm17, %xmm19 {%k1} {z}
114# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
115# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%ymm16, %ymm17, %ymm19
116# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %ymm17, %ymm19
117# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19
118# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%ymm16, %ymm17, %ymm19 {%k1}
119# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %ymm17, %ymm19 {%k1}
120# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19 {%k1}
121# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52huq	%ymm16, %ymm17, %ymm19 {%k1} {z}
122# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi), %ymm17, %ymm19 {%k1} {z}
123# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52huq	(%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
124# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%xmm16, %xmm17, %xmm19
125# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %xmm17, %xmm19
126# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19
127# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%xmm16, %xmm17, %xmm19 {%k1}
128# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %xmm17, %xmm19 {%k1}
129# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19 {%k1}
130# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%xmm16, %xmm17, %xmm19 {%k1} {z}
131# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %xmm17, %xmm19 {%k1} {z}
132# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to2}, %xmm17, %xmm19 {%k1} {z}
133# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%ymm16, %ymm17, %ymm19
134# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %ymm17, %ymm19
135# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19
136# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%ymm16, %ymm17, %ymm19 {%k1}
137# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %ymm17, %ymm19 {%k1}
138# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19 {%k1}
139# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vpmadd52luq	%ymm16, %ymm17, %ymm19 {%k1} {z}
140# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi), %ymm17, %ymm19 {%k1} {z}
141# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vpmadd52luq	(%rdi){1to4}, %ymm17, %ymm19 {%k1} {z}
142