xref: /llvm-project/llvm/test/tools/llvm-mca/X86/IceLakeServer/resources-avx512gfnivl.s (revision 896271dbea18be695c2322321c1112999b4ada4f)
1# NOTE: Assertions have been autogenerated by utils/update_mca_test_checks.py
2# RUN: llvm-mca -mtriple=x86_64-unknown-unknown -mcpu=icelake-server -instruction-tables < %s | FileCheck %s
3
4vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19
5vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19
6vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19
7vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19 {k1}
8vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19 {k1}
9vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19 {k1}
10vgf2p8affineinvqb   $0, %xmm16, %xmm17, %xmm19 {z}{k1}
11vgf2p8affineinvqb   $0, (%rax), %xmm17, %xmm19 {z}{k1}
12vgf2p8affineinvqb   $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
13
14vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19
15vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19
16vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19
17vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19 {k1}
18vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19 {k1}
19vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
20vgf2p8affineinvqb   $0, %ymm16, %ymm17, %ymm19 {z}{k1}
21vgf2p8affineinvqb   $0, (%rax), %ymm17, %ymm19 {z}{k1}
22vgf2p8affineinvqb   $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
23
24vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19
25vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19
26vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19
27vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19
28vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19
29vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19
30vgf2p8affineqb      $0, %xmm16, %xmm17, %xmm19 {z}{k1}
31vgf2p8affineqb      $0, (%rax), %xmm17, %xmm19 {z}{k1}
32vgf2p8affineqb      $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
33
34vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19
35vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19
36vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19
37vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19
38vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19
39vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19
40vgf2p8affineqb      $0, %ymm16, %ymm17, %ymm19 {z}{k1}
41vgf2p8affineqb      $0, (%rax), %ymm17, %ymm19 {z}{k1}
42vgf2p8affineqb      $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
43
44vgf2p8mulb          %xmm16, %xmm17, %xmm19
45vgf2p8mulb          (%rax), %xmm17, %xmm19
46vgf2p8mulb          %xmm16, %xmm17, %xmm19 {k1}
47vgf2p8mulb          (%rax), %xmm17, %xmm19 {k1}
48vgf2p8mulb          %xmm16, %xmm17, %xmm19 {z}{k1}
49vgf2p8mulb          (%rax), %xmm17, %xmm19 {z}{k1}
50
51vgf2p8mulb          %ymm16, %ymm17, %ymm19
52vgf2p8mulb          (%rax), %ymm17, %ymm19
53vgf2p8mulb          %ymm16, %ymm17, %ymm19 {k1}
54vgf2p8mulb          (%rax), %ymm17, %ymm19 {k1}
55vgf2p8mulb          %ymm16, %ymm17, %ymm19 {z}{k1}
56vgf2p8mulb          (%rax), %ymm17, %ymm19 {z}{k1}
57
58# CHECK:      Instruction Info:
59# CHECK-NEXT: [1]: #uOps
60# CHECK-NEXT: [2]: Latency
61# CHECK-NEXT: [3]: RThroughput
62# CHECK-NEXT: [4]: MayLoad
63# CHECK-NEXT: [5]: MayStore
64# CHECK-NEXT: [6]: HasSideEffects (U)
65
66# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
67# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19
68# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19
69# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19
70# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19 {%k1}
71# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19 {%k1}
72# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1}
73# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19 {%k1} {z}
74# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19 {%k1} {z}
75# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
76# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19
77# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19
78# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19
79# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19 {%k1}
80# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19 {%k1}
81# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
82# CHECK-NEXT:  1      5     0.50                        vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19 {%k1} {z}
83# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19 {%k1} {z}
84# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
85# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19
86# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19
87# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19
88# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19
89# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19
90# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19
91# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19 {%k1} {z}
92# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19 {%k1} {z}
93# CHECK-NEXT:  2      11    0.50    *                   vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
94# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19
95# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19
96# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19
97# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19
98# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19
99# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19
100# CHECK-NEXT:  1      5     0.50                        vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19 {%k1} {z}
101# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19 {%k1} {z}
102# CHECK-NEXT:  2      12    0.50    *                   vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
103# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%xmm16, %xmm17, %xmm19
104# CHECK-NEXT:  2      7     0.50    *                   vgf2p8mulb	(%rax), %xmm17, %xmm19
105# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%xmm16, %xmm17, %xmm19 {%k1}
106# CHECK-NEXT:  2      7     0.50    *                   vgf2p8mulb	(%rax), %xmm17, %xmm19 {%k1}
107# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%xmm16, %xmm17, %xmm19 {%k1} {z}
108# CHECK-NEXT:  2      7     0.50    *                   vgf2p8mulb	(%rax), %xmm17, %xmm19 {%k1} {z}
109# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%ymm16, %ymm17, %ymm19
110# CHECK-NEXT:  2      8     0.50    *                   vgf2p8mulb	(%rax), %ymm17, %ymm19
111# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%ymm16, %ymm17, %ymm19 {%k1}
112# CHECK-NEXT:  2      8     0.50    *                   vgf2p8mulb	(%rax), %ymm17, %ymm19 {%k1}
113# CHECK-NEXT:  1      1     0.50                        vgf2p8mulb	%ymm16, %ymm17, %ymm19 {%k1} {z}
114# CHECK-NEXT:  2      8     0.50    *                   vgf2p8mulb	(%rax), %ymm17, %ymm19 {%k1} {z}
115
116# CHECK:      Resources:
117# CHECK-NEXT: [0]   - ICXDivider
118# CHECK-NEXT: [1]   - ICXFPDivider
119# CHECK-NEXT: [2]   - ICXPort0
120# CHECK-NEXT: [3]   - ICXPort1
121# CHECK-NEXT: [4]   - ICXPort2
122# CHECK-NEXT: [5]   - ICXPort3
123# CHECK-NEXT: [6]   - ICXPort4
124# CHECK-NEXT: [7]   - ICXPort5
125# CHECK-NEXT: [8]   - ICXPort6
126# CHECK-NEXT: [9]   - ICXPort7
127# CHECK-NEXT: [10]  - ICXPort8
128# CHECK-NEXT: [11]  - ICXPort9
129
130# CHECK:      Resource pressure per iteration:
131# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]
132# CHECK-NEXT:  -      -     24.00  24.00  15.00  15.00   -      -      -      -      -      -
133
134# CHECK:      Resource pressure by instruction:
135# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6]    [7]    [8]    [9]    [10]   [11]   Instructions:
136# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19
137# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19
138# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19
139# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19 {%k1}
140# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19 {%k1}
141# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1}
142# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %xmm16, %xmm17, %xmm19 {%k1} {z}
143# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %xmm17, %xmm19 {%k1} {z}
144# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
145# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19
146# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19
147# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19
148# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19 {%k1}
149# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19 {%k1}
150# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1}
151# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineinvqb	$0, %ymm16, %ymm17, %ymm19 {%k1} {z}
152# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax), %ymm17, %ymm19 {%k1} {z}
153# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineinvqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
154# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19
155# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19
156# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19
157# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19
158# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19
159# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19
160# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %xmm16, %xmm17, %xmm19 {%k1} {z}
161# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %xmm17, %xmm19 {%k1} {z}
162# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to2}, %xmm17, %xmm19 {%k1} {z}
163# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19
164# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19
165# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19
166# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19
167# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19
168# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19
169# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8affineqb	$0, %ymm16, %ymm17, %ymm19 {%k1} {z}
170# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax), %ymm17, %ymm19 {%k1} {z}
171# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8affineqb	$0, (%rax){1to4}, %ymm17, %ymm19 {%k1} {z}
172# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%xmm16, %xmm17, %xmm19
173# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %xmm17, %xmm19
174# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%xmm16, %xmm17, %xmm19 {%k1}
175# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %xmm17, %xmm19 {%k1}
176# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%xmm16, %xmm17, %xmm19 {%k1} {z}
177# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %xmm17, %xmm19 {%k1} {z}
178# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%ymm16, %ymm17, %ymm19
179# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %ymm17, %ymm19
180# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%ymm16, %ymm17, %ymm19 {%k1}
181# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %ymm17, %ymm19 {%k1}
182# CHECK-NEXT:  -      -     0.50   0.50    -      -      -      -      -      -      -      -     vgf2p8mulb	%ymm16, %ymm17, %ymm19 {%k1} {z}
183# CHECK-NEXT:  -      -     0.50   0.50   0.50   0.50    -      -      -      -      -      -     vgf2p8mulb	(%rax), %ymm17, %ymm19 {%k1} {z}
184