xref: /llvm-project/llvm/test/tools/llvm-mca/X86/Generic/resources-avx512er.s (revision e42abef9bf3adb45c99de6632ae72da3e8b727e0)
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
4vexp2pd           %zmm16, %zmm19
5vexp2pd           (%rax), %zmm19
6vexp2pd           (%rax){1to8}, %zmm19
7vexp2pd           %zmm16, %zmm19 {k1}
8vexp2pd           (%rax), %zmm19 {k1}
9vexp2pd           (%rax){1to8}, %zmm19 {k1}
10vexp2pd           %zmm16, %zmm19 {z}{k1}
11vexp2pd           (%rax), %zmm19 {z}{k1}
12vexp2pd           (%rax){1to8}, %zmm19 {z}{k1}
13
14vexp2pd           {sae}, %zmm16, %zmm19
15vexp2pd           {sae}, %zmm16, %zmm19 {k1}
16vexp2pd           {sae}, %zmm16, %zmm19 {z}{k1}
17
18vexp2ps           %zmm16, %zmm19
19vexp2ps           (%rax), %zmm19
20vexp2ps           (%rax){1to16}, %zmm19
21vexp2ps           %zmm16, %zmm19 {k1}
22vexp2ps           (%rax), %zmm19 {k1}
23vexp2ps           (%rax){1to16}, %zmm19 {k1}
24vexp2ps           %zmm16, %zmm19 {z}{k1}
25vexp2ps           (%rax), %zmm19 {z}{k1}
26vexp2ps           (%rax){1to16}, %zmm19 {z}{k1}
27
28vexp2ps           {sae}, %zmm16, %zmm19
29vexp2ps           {sae}, %zmm16, %zmm19 {k1}
30vexp2ps           {sae}, %zmm16, %zmm19 {z}{k1}
31
32vrcp28pd          %zmm16, %zmm19
33vrcp28pd          (%rax), %zmm19
34vrcp28pd          (%rax){1to8}, %zmm19
35vrcp28pd          %zmm16, %zmm19 {k1}
36vrcp28pd          (%rax), %zmm19 {k1}
37vrcp28pd          (%rax){1to8}, %zmm19 {k1}
38vrcp28pd          %zmm16, %zmm19 {z}{k1}
39vrcp28pd          (%rax), %zmm19 {z}{k1}
40vrcp28pd          (%rax){1to8}, %zmm19 {z}{k1}
41
42vrcp28pd          {sae}, %zmm16, %zmm19
43vrcp28pd          {sae}, %zmm16, %zmm19 {k1}
44vrcp28pd          {sae}, %zmm16, %zmm19 {z}{k1}
45
46vrcp28ps          %zmm16, %zmm19
47vrcp28ps          (%rax), %zmm19
48vrcp28ps          (%rax){1to16}, %zmm19
49vrcp28ps          %zmm16, %zmm19 {k1}
50vrcp28ps          (%rax), %zmm19 {k1}
51vrcp28ps          (%rax){1to16}, %zmm19 {k1}
52vrcp28ps          %zmm16, %zmm19 {z}{k1}
53vrcp28ps          (%rax), %zmm19 {z}{k1}
54vrcp28ps          (%rax){1to16}, %zmm19 {z}{k1}
55
56vrcp28ps          {sae}, %zmm16, %zmm19
57vrcp28ps          {sae}, %zmm16, %zmm19 {k1}
58vrcp28ps          {sae}, %zmm16, %zmm19 {z}{k1}
59
60vrcp28sd          %xmm16, %xmm17, %xmm19
61vrcp28sd          (%rax), %xmm17, %xmm19
62vrcp28sd          %xmm16, %xmm17, %xmm19 {k1}
63vrcp28sd          (%rax), %xmm17, %xmm19 {k1}
64vrcp28sd          %xmm16, %xmm17, %xmm19 {z}{k1}
65vrcp28sd          (%rax), %xmm17, %xmm19 {z}{k1}
66
67vrcp28sd          {sae}, %xmm16, %xmm17, %xmm19
68vrcp28sd          {sae}, %xmm16, %xmm17, %xmm19 {k1}
69vrcp28sd          {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
70
71vrcp28ss          %xmm16, %xmm17, %xmm19
72vrcp28ss          (%rax), %xmm17, %xmm19
73vrcp28ss          %xmm16, %xmm17, %xmm19 {k1}
74vrcp28ss          (%rax), %xmm17, %xmm19 {k1}
75vrcp28ss          %xmm16, %xmm17, %xmm19 {z}{k1}
76vrcp28ss          (%rax), %xmm17, %xmm19 {z}{k1}
77
78vrcp28ss          {sae}, %xmm16, %xmm17, %xmm19
79vrcp28ss          {sae}, %xmm16, %xmm17, %xmm19 {k1}
80vrcp28ss          {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
81
82vrsqrt28pd        %zmm16, %zmm19
83vrsqrt28pd        (%rax), %zmm19
84vrsqrt28pd        (%rax){1to8}, %zmm19
85vrsqrt28pd        %zmm16, %zmm19 {k1}
86vrsqrt28pd        (%rax), %zmm19 {k1}
87vrsqrt28pd        (%rax){1to8}, %zmm19 {k1}
88vrsqrt28pd        %zmm16, %zmm19 {z}{k1}
89vrsqrt28pd        (%rax), %zmm19 {z}{k1}
90vrsqrt28pd        (%rax){1to8}, %zmm19 {z}{k1}
91
92vrsqrt28pd        {sae}, %zmm16, %zmm19
93vrsqrt28pd        {sae}, %zmm16, %zmm19 {k1}
94vrsqrt28pd        {sae}, %zmm16, %zmm19 {z}{k1}
95
96vrsqrt28ps        %zmm16, %zmm19
97vrsqrt28ps        (%rax), %zmm19
98vrsqrt28ps        (%rax){1to16}, %zmm19
99vrsqrt28ps        %zmm16, %zmm19 {k1}
100vrsqrt28ps        (%rax), %zmm19 {k1}
101vrsqrt28ps        (%rax){1to16}, %zmm19 {k1}
102vrsqrt28ps        %zmm16, %zmm19 {z}{k1}
103vrsqrt28ps        (%rax), %zmm19 {z}{k1}
104vrsqrt28ps        (%rax){1to16}, %zmm19 {z}{k1}
105
106vrsqrt28ps        {sae}, %zmm16, %zmm19
107vrsqrt28ps        {sae}, %zmm16, %zmm19 {k1}
108vrsqrt28ps        {sae}, %zmm16, %zmm19 {z}{k1}
109
110vrsqrt28sd        %xmm16, %xmm17, %xmm19
111vrsqrt28sd        (%rax), %xmm17, %xmm19
112vrsqrt28sd        %xmm16, %xmm17, %xmm19 {k1}
113vrsqrt28sd        (%rax), %xmm17, %xmm19 {k1}
114vrsqrt28sd        %xmm16, %xmm17, %xmm19 {z}{k1}
115vrsqrt28sd        (%rax), %xmm17, %xmm19 {z}{k1}
116
117vrsqrt28sd        {sae}, %xmm16, %xmm17, %xmm19
118vrsqrt28sd        {sae}, %xmm16, %xmm17, %xmm19 {k1}
119vrsqrt28sd        {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
120
121vrsqrt28ss        %xmm16, %xmm17, %xmm19
122vrsqrt28ss        (%rax), %xmm17, %xmm19
123vrsqrt28ss        %xmm16, %xmm17, %xmm19 {k1}
124vrsqrt28ss        (%rax), %xmm17, %xmm19 {k1}
125vrsqrt28ss        %xmm16, %xmm17, %xmm19 {z}{k1}
126vrsqrt28ss        (%rax), %xmm17, %xmm19 {z}{k1}
127
128vrsqrt28ss        {sae}, %xmm16, %xmm17, %xmm19
129vrsqrt28ss        {sae}, %xmm16, %xmm17, %xmm19 {k1}
130vrsqrt28ss        {sae}, %xmm16, %xmm17, %xmm19 {z}{k1}
131
132# CHECK:      Instruction Info:
133# CHECK-NEXT: [1]: #uOps
134# CHECK-NEXT: [2]: Latency
135# CHECK-NEXT: [3]: RThroughput
136# CHECK-NEXT: [4]: MayLoad
137# CHECK-NEXT: [5]: MayStore
138# CHECK-NEXT: [6]: HasSideEffects (U)
139
140# CHECK:      [1]    [2]    [3]    [4]    [5]    [6]    Instructions:
141# CHECK-NEXT:  1      3     1.00                        vexp2pd	%zmm16, %zmm19
142# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax), %zmm19
143# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax){1to8}, %zmm19
144# CHECK-NEXT:  1      3     1.00                        vexp2pd	%zmm16, %zmm19 {%k1}
145# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax), %zmm19 {%k1}
146# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax){1to8}, %zmm19 {%k1}
147# CHECK-NEXT:  1      3     1.00                        vexp2pd	%zmm16, %zmm19 {%k1} {z}
148# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax), %zmm19 {%k1} {z}
149# CHECK-NEXT:  2      10    1.00    *                   vexp2pd	(%rax){1to8}, %zmm19 {%k1} {z}
150# CHECK-NEXT:  1      3     1.00                        vexp2pd	{sae}, %zmm16, %zmm19
151# CHECK-NEXT:  1      3     1.00                        vexp2pd	{sae}, %zmm16, %zmm19 {%k1}
152# CHECK-NEXT:  1      3     1.00                        vexp2pd	{sae}, %zmm16, %zmm19 {%k1} {z}
153# CHECK-NEXT:  1      3     1.00                        vexp2ps	%zmm16, %zmm19
154# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax), %zmm19
155# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax){1to16}, %zmm19
156# CHECK-NEXT:  1      3     1.00                        vexp2ps	%zmm16, %zmm19 {%k1}
157# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax), %zmm19 {%k1}
158# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax){1to16}, %zmm19 {%k1}
159# CHECK-NEXT:  1      3     1.00                        vexp2ps	%zmm16, %zmm19 {%k1} {z}
160# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax), %zmm19 {%k1} {z}
161# CHECK-NEXT:  2      10    1.00    *                   vexp2ps	(%rax){1to16}, %zmm19 {%k1} {z}
162# CHECK-NEXT:  1      3     1.00                        vexp2ps	{sae}, %zmm16, %zmm19
163# CHECK-NEXT:  1      3     1.00                        vexp2ps	{sae}, %zmm16, %zmm19 {%k1}
164# CHECK-NEXT:  1      3     1.00                        vexp2ps	{sae}, %zmm16, %zmm19 {%k1} {z}
165# CHECK-NEXT:  3      7     2.00                        vrcp28pd	%zmm16, %zmm19
166# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax), %zmm19
167# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax){1to8}, %zmm19
168# CHECK-NEXT:  3      7     2.00                        vrcp28pd	%zmm16, %zmm19 {%k1}
169# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax), %zmm19 {%k1}
170# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax){1to8}, %zmm19 {%k1}
171# CHECK-NEXT:  3      7     2.00                        vrcp28pd	%zmm16, %zmm19 {%k1} {z}
172# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax), %zmm19 {%k1} {z}
173# CHECK-NEXT:  4      14    2.00    *                   vrcp28pd	(%rax){1to8}, %zmm19 {%k1} {z}
174# CHECK-NEXT:  3      7     2.00                        vrcp28pd	{sae}, %zmm16, %zmm19
175# CHECK-NEXT:  3      7     2.00                        vrcp28pd	{sae}, %zmm16, %zmm19 {%k1}
176# CHECK-NEXT:  3      7     2.00                        vrcp28pd	{sae}, %zmm16, %zmm19 {%k1} {z}
177# CHECK-NEXT:  3      7     2.00                        vrcp28ps	%zmm16, %zmm19
178# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax), %zmm19
179# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax){1to16}, %zmm19
180# CHECK-NEXT:  3      7     2.00                        vrcp28ps	%zmm16, %zmm19 {%k1}
181# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax), %zmm19 {%k1}
182# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax){1to16}, %zmm19 {%k1}
183# CHECK-NEXT:  3      7     2.00                        vrcp28ps	%zmm16, %zmm19 {%k1} {z}
184# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax), %zmm19 {%k1} {z}
185# CHECK-NEXT:  4      14    2.00    *                   vrcp28ps	(%rax){1to16}, %zmm19 {%k1} {z}
186# CHECK-NEXT:  3      7     2.00                        vrcp28ps	{sae}, %zmm16, %zmm19
187# CHECK-NEXT:  3      7     2.00                        vrcp28ps	{sae}, %zmm16, %zmm19 {%k1}
188# CHECK-NEXT:  3      7     2.00                        vrcp28ps	{sae}, %zmm16, %zmm19 {%k1} {z}
189# CHECK-NEXT:  1      5     1.00                        vrcp28sd	%xmm16, %xmm17, %xmm19
190# CHECK-NEXT:  2      11    1.00    *                   vrcp28sd	(%rax), %xmm17, %xmm19
191# CHECK-NEXT:  1      5     1.00                        vrcp28sd	%xmm16, %xmm17, %xmm19 {%k1}
192# CHECK-NEXT:  2      11    1.00    *                   vrcp28sd	(%rax), %xmm17, %xmm19 {%k1}
193# CHECK-NEXT:  1      5     1.00                        vrcp28sd	%xmm16, %xmm17, %xmm19 {%k1} {z}
194# CHECK-NEXT:  2      11    1.00    *                   vrcp28sd	(%rax), %xmm17, %xmm19 {%k1} {z}
195# CHECK-NEXT:  1      5     1.00                        vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19
196# CHECK-NEXT:  1      5     1.00                        vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
197# CHECK-NEXT:  1      5     1.00                        vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
198# CHECK-NEXT:  1      5     1.00                        vrcp28ss	%xmm16, %xmm17, %xmm19
199# CHECK-NEXT:  2      11    1.00    *                   vrcp28ss	(%rax), %xmm17, %xmm19
200# CHECK-NEXT:  1      5     1.00                        vrcp28ss	%xmm16, %xmm17, %xmm19 {%k1}
201# CHECK-NEXT:  2      11    1.00    *                   vrcp28ss	(%rax), %xmm17, %xmm19 {%k1}
202# CHECK-NEXT:  1      5     1.00                        vrcp28ss	%xmm16, %xmm17, %xmm19 {%k1} {z}
203# CHECK-NEXT:  2      11    1.00    *                   vrcp28ss	(%rax), %xmm17, %xmm19 {%k1} {z}
204# CHECK-NEXT:  1      5     1.00                        vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19
205# CHECK-NEXT:  1      5     1.00                        vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
206# CHECK-NEXT:  1      5     1.00                        vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
207# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	%zmm16, %zmm19
208# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax), %zmm19
209# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax){1to8}, %zmm19
210# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	%zmm16, %zmm19 {%k1}
211# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax), %zmm19 {%k1}
212# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax){1to8}, %zmm19 {%k1}
213# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	%zmm16, %zmm19 {%k1} {z}
214# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax), %zmm19 {%k1} {z}
215# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28pd	(%rax){1to8}, %zmm19 {%k1} {z}
216# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	{sae}, %zmm16, %zmm19
217# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	{sae}, %zmm16, %zmm19 {%k1}
218# CHECK-NEXT:  3      7     2.00                        vrsqrt28pd	{sae}, %zmm16, %zmm19 {%k1} {z}
219# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	%zmm16, %zmm19
220# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax), %zmm19
221# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax){1to16}, %zmm19
222# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	%zmm16, %zmm19 {%k1}
223# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax), %zmm19 {%k1}
224# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax){1to16}, %zmm19 {%k1}
225# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	%zmm16, %zmm19 {%k1} {z}
226# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax), %zmm19 {%k1} {z}
227# CHECK-NEXT:  4      14    2.00    *                   vrsqrt28ps	(%rax){1to16}, %zmm19 {%k1} {z}
228# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	{sae}, %zmm16, %zmm19
229# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	{sae}, %zmm16, %zmm19 {%k1}
230# CHECK-NEXT:  3      7     2.00                        vrsqrt28ps	{sae}, %zmm16, %zmm19 {%k1} {z}
231# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	%xmm16, %xmm17, %xmm19
232# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28sd	(%rax), %xmm17, %xmm19
233# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	%xmm16, %xmm17, %xmm19 {%k1}
234# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28sd	(%rax), %xmm17, %xmm19 {%k1}
235# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	%xmm16, %xmm17, %xmm19 {%k1} {z}
236# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28sd	(%rax), %xmm17, %xmm19 {%k1} {z}
237# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19
238# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
239# CHECK-NEXT:  1      5     1.00                        vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
240# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	%xmm16, %xmm17, %xmm19
241# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28ss	(%rax), %xmm17, %xmm19
242# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	%xmm16, %xmm17, %xmm19 {%k1}
243# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28ss	(%rax), %xmm17, %xmm19 {%k1}
244# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	%xmm16, %xmm17, %xmm19 {%k1} {z}
245# CHECK-NEXT:  2      11    1.00    *                   vrsqrt28ss	(%rax), %xmm17, %xmm19 {%k1} {z}
246# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19
247# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
248# CHECK-NEXT:  1      5     1.00                        vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
249
250# CHECK:      Resources:
251# CHECK-NEXT: [0]   - SBDivider
252# CHECK-NEXT: [1]   - SBFPDivider
253# CHECK-NEXT: [2]   - SBPort0
254# CHECK-NEXT: [3]   - SBPort1
255# CHECK-NEXT: [4]   - SBPort4
256# CHECK-NEXT: [5]   - SBPort5
257# CHECK-NEXT: [6.0] - SBPort23
258# CHECK-NEXT: [6.1] - SBPort23
259
260# CHECK:      Resource pressure per iteration:
261# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]
262# CHECK-NEXT:  -      -     156.00 24.00   -     24.00  24.00  24.00
263
264# CHECK:      Resource pressure by instruction:
265# CHECK-NEXT: [0]    [1]    [2]    [3]    [4]    [5]    [6.0]  [6.1]  Instructions:
266# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	%zmm16, %zmm19
267# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax), %zmm19
268# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax){1to8}, %zmm19
269# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	%zmm16, %zmm19 {%k1}
270# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax), %zmm19 {%k1}
271# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax){1to8}, %zmm19 {%k1}
272# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	%zmm16, %zmm19 {%k1} {z}
273# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax), %zmm19 {%k1} {z}
274# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2pd	(%rax){1to8}, %zmm19 {%k1} {z}
275# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	{sae}, %zmm16, %zmm19
276# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	{sae}, %zmm16, %zmm19 {%k1}
277# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2pd	{sae}, %zmm16, %zmm19 {%k1} {z}
278# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	%zmm16, %zmm19
279# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax), %zmm19
280# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax){1to16}, %zmm19
281# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	%zmm16, %zmm19 {%k1}
282# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax), %zmm19 {%k1}
283# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax){1to16}, %zmm19 {%k1}
284# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	%zmm16, %zmm19 {%k1} {z}
285# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax), %zmm19 {%k1} {z}
286# CHECK-NEXT:  -      -      -     1.00    -      -     0.50   0.50   vexp2ps	(%rax){1to16}, %zmm19 {%k1} {z}
287# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	{sae}, %zmm16, %zmm19
288# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	{sae}, %zmm16, %zmm19 {%k1}
289# CHECK-NEXT:  -      -      -     1.00    -      -      -      -     vexp2ps	{sae}, %zmm16, %zmm19 {%k1} {z}
290# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	%zmm16, %zmm19
291# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax), %zmm19
292# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax){1to8}, %zmm19
293# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	%zmm16, %zmm19 {%k1}
294# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax), %zmm19 {%k1}
295# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax){1to8}, %zmm19 {%k1}
296# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	%zmm16, %zmm19 {%k1} {z}
297# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax), %zmm19 {%k1} {z}
298# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28pd	(%rax){1to8}, %zmm19 {%k1} {z}
299# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	{sae}, %zmm16, %zmm19
300# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	{sae}, %zmm16, %zmm19 {%k1}
301# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28pd	{sae}, %zmm16, %zmm19 {%k1} {z}
302# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	%zmm16, %zmm19
303# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax), %zmm19
304# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax){1to16}, %zmm19
305# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	%zmm16, %zmm19 {%k1}
306# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax), %zmm19 {%k1}
307# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax){1to16}, %zmm19 {%k1}
308# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	%zmm16, %zmm19 {%k1} {z}
309# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax), %zmm19 {%k1} {z}
310# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrcp28ps	(%rax){1to16}, %zmm19 {%k1} {z}
311# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	{sae}, %zmm16, %zmm19
312# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	{sae}, %zmm16, %zmm19 {%k1}
313# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrcp28ps	{sae}, %zmm16, %zmm19 {%k1} {z}
314# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	%xmm16, %xmm17, %xmm19
315# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28sd	(%rax), %xmm17, %xmm19
316# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	%xmm16, %xmm17, %xmm19 {%k1}
317# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28sd	(%rax), %xmm17, %xmm19 {%k1}
318# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	%xmm16, %xmm17, %xmm19 {%k1} {z}
319# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28sd	(%rax), %xmm17, %xmm19 {%k1} {z}
320# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19
321# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
322# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
323# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	%xmm16, %xmm17, %xmm19
324# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28ss	(%rax), %xmm17, %xmm19
325# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	%xmm16, %xmm17, %xmm19 {%k1}
326# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28ss	(%rax), %xmm17, %xmm19 {%k1}
327# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	%xmm16, %xmm17, %xmm19 {%k1} {z}
328# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrcp28ss	(%rax), %xmm17, %xmm19 {%k1} {z}
329# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19
330# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
331# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrcp28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
332# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	%zmm16, %zmm19
333# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax), %zmm19
334# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax){1to8}, %zmm19
335# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	%zmm16, %zmm19 {%k1}
336# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax), %zmm19 {%k1}
337# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax){1to8}, %zmm19 {%k1}
338# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	%zmm16, %zmm19 {%k1} {z}
339# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax), %zmm19 {%k1} {z}
340# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28pd	(%rax){1to8}, %zmm19 {%k1} {z}
341# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	{sae}, %zmm16, %zmm19
342# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	{sae}, %zmm16, %zmm19 {%k1}
343# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28pd	{sae}, %zmm16, %zmm19 {%k1} {z}
344# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	%zmm16, %zmm19
345# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax), %zmm19
346# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax){1to16}, %zmm19
347# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	%zmm16, %zmm19 {%k1}
348# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax), %zmm19 {%k1}
349# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax){1to16}, %zmm19 {%k1}
350# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	%zmm16, %zmm19 {%k1} {z}
351# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax), %zmm19 {%k1} {z}
352# CHECK-NEXT:  -      -     2.50    -      -     0.50   0.50   0.50   vrsqrt28ps	(%rax){1to16}, %zmm19 {%k1} {z}
353# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	{sae}, %zmm16, %zmm19
354# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	{sae}, %zmm16, %zmm19 {%k1}
355# CHECK-NEXT:  -      -     2.50    -      -     0.50    -      -     vrsqrt28ps	{sae}, %zmm16, %zmm19 {%k1} {z}
356# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	%xmm16, %xmm17, %xmm19
357# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28sd	(%rax), %xmm17, %xmm19
358# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	%xmm16, %xmm17, %xmm19 {%k1}
359# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28sd	(%rax), %xmm17, %xmm19 {%k1}
360# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	%xmm16, %xmm17, %xmm19 {%k1} {z}
361# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28sd	(%rax), %xmm17, %xmm19 {%k1} {z}
362# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19
363# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
364# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28sd	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
365# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	%xmm16, %xmm17, %xmm19
366# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28ss	(%rax), %xmm17, %xmm19
367# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	%xmm16, %xmm17, %xmm19 {%k1}
368# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28ss	(%rax), %xmm17, %xmm19 {%k1}
369# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	%xmm16, %xmm17, %xmm19 {%k1} {z}
370# CHECK-NEXT:  -      -     1.00    -      -      -     0.50   0.50   vrsqrt28ss	(%rax), %xmm17, %xmm19 {%k1} {z}
371# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19
372# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1}
373# CHECK-NEXT:  -      -     1.00    -      -      -      -      -     vrsqrt28ss	{sae}, %xmm16, %xmm17, %xmm19 {%k1} {z}
374