Run DCE after a LoopFlatten test to reduce spurious output [nfc]
[llvm-project.git] / llvm / test / tools / llvm-mca / X86 / IceLakeServer / resources-avx512gfnivl.s
blobed6dab27d09c37b4d293f3f06a35a46ea302957b
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
4 vgf2p8affineinvqb $0, %xmm16, %xmm17, %xmm19
5 vgf2p8affineinvqb $0, (%rax), %xmm17, %xmm19
6 vgf2p8affineinvqb $0, (%rax){1to2}, %xmm17, %xmm19
7 vgf2p8affineinvqb $0, %xmm16, %xmm17, %xmm19 {k1}
8 vgf2p8affineinvqb $0, (%rax), %xmm17, %xmm19 {k1}
9 vgf2p8affineinvqb $0, (%rax){1to2}, %xmm17, %xmm19 {k1}
10 vgf2p8affineinvqb $0, %xmm16, %xmm17, %xmm19 {z}{k1}
11 vgf2p8affineinvqb $0, (%rax), %xmm17, %xmm19 {z}{k1}
12 vgf2p8affineinvqb $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
14 vgf2p8affineinvqb $0, %ymm16, %ymm17, %ymm19
15 vgf2p8affineinvqb $0, (%rax), %ymm17, %ymm19
16 vgf2p8affineinvqb $0, (%rax){1to4}, %ymm17, %ymm19
17 vgf2p8affineinvqb $0, %ymm16, %ymm17, %ymm19 {k1}
18 vgf2p8affineinvqb $0, (%rax), %ymm17, %ymm19 {k1}
19 vgf2p8affineinvqb $0, (%rax){1to4}, %ymm17, %ymm19 {k1}
20 vgf2p8affineinvqb $0, %ymm16, %ymm17, %ymm19 {z}{k1}
21 vgf2p8affineinvqb $0, (%rax), %ymm17, %ymm19 {z}{k1}
22 vgf2p8affineinvqb $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
24 vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19
25 vgf2p8affineqb $0, (%rax), %xmm17, %xmm19
26 vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19
27 vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19
28 vgf2p8affineqb $0, (%rax), %xmm17, %xmm19
29 vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19
30 vgf2p8affineqb $0, %xmm16, %xmm17, %xmm19 {z}{k1}
31 vgf2p8affineqb $0, (%rax), %xmm17, %xmm19 {z}{k1}
32 vgf2p8affineqb $0, (%rax){1to2}, %xmm17, %xmm19 {z}{k1}
34 vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19
35 vgf2p8affineqb $0, (%rax), %ymm17, %ymm19
36 vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19
37 vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19
38 vgf2p8affineqb $0, (%rax), %ymm17, %ymm19
39 vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19
40 vgf2p8affineqb $0, %ymm16, %ymm17, %ymm19 {z}{k1}
41 vgf2p8affineqb $0, (%rax), %ymm17, %ymm19 {z}{k1}
42 vgf2p8affineqb $0, (%rax){1to4}, %ymm17, %ymm19 {z}{k1}
44 vgf2p8mulb %xmm16, %xmm17, %xmm19
45 vgf2p8mulb (%rax), %xmm17, %xmm19
46 vgf2p8mulb %xmm16, %xmm17, %xmm19 {k1}
47 vgf2p8mulb (%rax), %xmm17, %xmm19 {k1}
48 vgf2p8mulb %xmm16, %xmm17, %xmm19 {z}{k1}
49 vgf2p8mulb (%rax), %xmm17, %xmm19 {z}{k1}
51 vgf2p8mulb %ymm16, %ymm17, %ymm19
52 vgf2p8mulb (%rax), %ymm17, %ymm19
53 vgf2p8mulb %ymm16, %ymm17, %ymm19 {k1}
54 vgf2p8mulb (%rax), %ymm17, %ymm19 {k1}
55 vgf2p8mulb %ymm16, %ymm17, %ymm19 {z}{k1}
56 vgf2p8mulb (%rax), %ymm17, %ymm19 {z}{k1}
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)
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}
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
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 - - - - - -
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}