xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSchedPredicates.td (revision bdd1243df58e60e85101c09001d9812a789b6bc4)
1349cc55cSDimitry Andric//===--- PPCSchedPredicates.td - PowerPC Scheduling Preds -*- tablegen -*-===//
2349cc55cSDimitry Andric//
3349cc55cSDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4349cc55cSDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
5349cc55cSDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6349cc55cSDimitry Andric//
7349cc55cSDimitry Andric//===----------------------------------------------------------------------===//
8349cc55cSDimitry Andric// Automatically generated file, do not edit!
9349cc55cSDimitry Andric//
10349cc55cSDimitry Andric// This file defines scheduling predicate definitions that are used by the
11349cc55cSDimitry Andric// PowerPC subtargets.
12349cc55cSDimitry Andric//===----------------------------------------------------------------------===//
13349cc55cSDimitry Andric// Identify instructions that write BF pipelines with 7 cycles.
14349cc55cSDimitry Andricdef P10W_BF_7C_Pred : MCSchedPredicate<
15349cc55cSDimitry Andric      CheckOpcode<[FADD,
16349cc55cSDimitry Andric                   FADDS,
17349cc55cSDimitry Andric                   FADDS_rec,
18349cc55cSDimitry Andric                   FADD_rec,
19349cc55cSDimitry Andric                   FCFID,
20349cc55cSDimitry Andric                   FCFIDS,
21349cc55cSDimitry Andric                   FCFIDS_rec,
22349cc55cSDimitry Andric                   FCFIDU,
23349cc55cSDimitry Andric                   FCFIDUS,
24349cc55cSDimitry Andric                   FCFIDUS_rec,
25349cc55cSDimitry Andric                   FCFIDU_rec,
26349cc55cSDimitry Andric                   FCFID_rec,
27349cc55cSDimitry Andric                   FCTID,
28349cc55cSDimitry Andric                   FCTIDU,
29349cc55cSDimitry Andric                   FCTIDUZ,
30349cc55cSDimitry Andric                   FCTIDUZ_rec,
31349cc55cSDimitry Andric                   FCTIDU_rec,
32349cc55cSDimitry Andric                   FCTIDZ,
33349cc55cSDimitry Andric                   FCTIDZ_rec,
34349cc55cSDimitry Andric                   FCTID_rec,
35349cc55cSDimitry Andric                   FCTIW,
36349cc55cSDimitry Andric                   FCTIWU,
37349cc55cSDimitry Andric                   FCTIWUZ,
38349cc55cSDimitry Andric                   FCTIWUZ_rec,
39349cc55cSDimitry Andric                   FCTIWU_rec,
40349cc55cSDimitry Andric                   FCTIWZ,
41349cc55cSDimitry Andric                   FCTIWZ_rec,
42349cc55cSDimitry Andric                   FCTIW_rec,
43349cc55cSDimitry Andric                   FMADD,
44349cc55cSDimitry Andric                   FMADDS,
45349cc55cSDimitry Andric                   FMADDS_rec,
46349cc55cSDimitry Andric                   FMADD_rec,
47349cc55cSDimitry Andric                   FMSUB,
48349cc55cSDimitry Andric                   FMSUBS,
49349cc55cSDimitry Andric                   FMSUBS_rec,
50349cc55cSDimitry Andric                   FMSUB_rec,
51349cc55cSDimitry Andric                   FMUL,
52349cc55cSDimitry Andric                   FMULS,
53349cc55cSDimitry Andric                   FMULS_rec,
54349cc55cSDimitry Andric                   FMUL_rec,
55349cc55cSDimitry Andric                   FNMADD,
56349cc55cSDimitry Andric                   FNMADDS,
57349cc55cSDimitry Andric                   FNMADDS_rec,
58349cc55cSDimitry Andric                   FNMADD_rec,
59349cc55cSDimitry Andric                   FNMSUB,
60349cc55cSDimitry Andric                   FNMSUBS,
61349cc55cSDimitry Andric                   FNMSUBS_rec,
62349cc55cSDimitry Andric                   FNMSUB_rec,
63349cc55cSDimitry Andric                   FRE,
64349cc55cSDimitry Andric                   FRES,
65349cc55cSDimitry Andric                   FRES_rec,
66349cc55cSDimitry Andric                   FRE_rec,
67349cc55cSDimitry Andric                   FRIMD, FRIMS,
68349cc55cSDimitry Andric                   FRIMD_rec, FRIMS_rec,
69349cc55cSDimitry Andric                   FRIND, FRINS,
70349cc55cSDimitry Andric                   FRIND_rec, FRINS_rec,
71349cc55cSDimitry Andric                   FRIPD, FRIPS,
72349cc55cSDimitry Andric                   FRIPD_rec, FRIPS_rec,
73349cc55cSDimitry Andric                   FRIZD, FRIZS,
74349cc55cSDimitry Andric                   FRIZD_rec, FRIZS_rec,
75349cc55cSDimitry Andric                   FRSP,
76349cc55cSDimitry Andric                   FRSP_rec,
77349cc55cSDimitry Andric                   FRSQRTE,
78349cc55cSDimitry Andric                   FRSQRTES,
79349cc55cSDimitry Andric                   FRSQRTES_rec,
80349cc55cSDimitry Andric                   FRSQRTE_rec,
81349cc55cSDimitry Andric                   FSELD, FSELS,
82349cc55cSDimitry Andric                   FSELD_rec, FSELS_rec,
83349cc55cSDimitry Andric                   FSUB,
84349cc55cSDimitry Andric                   FSUBS,
85349cc55cSDimitry Andric                   FSUBS_rec,
86349cc55cSDimitry Andric                   FSUB_rec,
87349cc55cSDimitry Andric                   VADDFP,
88349cc55cSDimitry Andric                   VCFSX, VCFSX_0,
89349cc55cSDimitry Andric                   VCFUX, VCFUX_0,
90349cc55cSDimitry Andric                   VCTSXS, VCTSXS_0,
91349cc55cSDimitry Andric                   VCTUXS, VCTUXS_0,
92349cc55cSDimitry Andric                   VEXPTEFP,
93349cc55cSDimitry Andric                   VEXPTEFP,
94349cc55cSDimitry Andric                   VLOGEFP,
95349cc55cSDimitry Andric                   VMADDFP,
96349cc55cSDimitry Andric                   VNMSUBFP,
97349cc55cSDimitry Andric                   VREFP,
98349cc55cSDimitry Andric                   VRFIM,
99349cc55cSDimitry Andric                   VRFIN,
100349cc55cSDimitry Andric                   VRFIP,
101349cc55cSDimitry Andric                   VRFIZ,
102349cc55cSDimitry Andric                   VRSQRTEFP,
103349cc55cSDimitry Andric                   VSUBFP,
104349cc55cSDimitry Andric                   XSADDDP,
105349cc55cSDimitry Andric                   XSADDSP,
106349cc55cSDimitry Andric                   XSCVDPHP,
107349cc55cSDimitry Andric                   XSCVDPSP,
108349cc55cSDimitry Andric                   XSCVDPSPN,
109349cc55cSDimitry Andric                   XSCVDPSXDS, XSCVDPSXDSs,
110349cc55cSDimitry Andric                   XSCVDPSXWS, XSCVDPSXWSs,
111349cc55cSDimitry Andric                   XSCVDPUXDS, XSCVDPUXDSs,
112349cc55cSDimitry Andric                   XSCVDPUXWS, XSCVDPUXWSs,
113349cc55cSDimitry Andric                   XSCVSPDP,
114349cc55cSDimitry Andric                   XSCVSXDDP,
115349cc55cSDimitry Andric                   XSCVSXDSP,
116349cc55cSDimitry Andric                   XSCVUXDDP,
117349cc55cSDimitry Andric                   XSCVUXDSP,
118349cc55cSDimitry Andric                   XSMADDADP,
119349cc55cSDimitry Andric                   XSMADDASP,
120349cc55cSDimitry Andric                   XSMADDMDP,
121349cc55cSDimitry Andric                   XSMADDMSP,
122349cc55cSDimitry Andric                   XSMSUBADP,
123349cc55cSDimitry Andric                   XSMSUBASP,
124349cc55cSDimitry Andric                   XSMSUBMDP,
125349cc55cSDimitry Andric                   XSMSUBMSP,
126349cc55cSDimitry Andric                   XSMULDP,
127349cc55cSDimitry Andric                   XSMULSP,
128349cc55cSDimitry Andric                   XSNMADDADP,
129349cc55cSDimitry Andric                   XSNMADDASP,
130349cc55cSDimitry Andric                   XSNMADDMDP,
131349cc55cSDimitry Andric                   XSNMADDMSP,
132349cc55cSDimitry Andric                   XSNMSUBADP,
133349cc55cSDimitry Andric                   XSNMSUBASP,
134349cc55cSDimitry Andric                   XSNMSUBMDP,
135349cc55cSDimitry Andric                   XSNMSUBMSP,
136349cc55cSDimitry Andric                   XSRDPI,
137349cc55cSDimitry Andric                   XSRDPIC,
138349cc55cSDimitry Andric                   XSRDPIM,
139349cc55cSDimitry Andric                   XSRDPIP,
140349cc55cSDimitry Andric                   XSRDPIZ,
141349cc55cSDimitry Andric                   XSREDP,
142349cc55cSDimitry Andric                   XSRESP,
143349cc55cSDimitry Andric                   XSRSP,
144349cc55cSDimitry Andric                   XSRSQRTEDP,
145349cc55cSDimitry Andric                   XSRSQRTESP,
146349cc55cSDimitry Andric                   XSSUBDP,
147349cc55cSDimitry Andric                   XSSUBSP,
148349cc55cSDimitry Andric                   XVADDDP,
149349cc55cSDimitry Andric                   XVADDSP,
150349cc55cSDimitry Andric                   XVCVDPSP,
151349cc55cSDimitry Andric                   XVCVDPSXDS,
152349cc55cSDimitry Andric                   XVCVDPSXWS,
153349cc55cSDimitry Andric                   XVCVDPUXDS,
154349cc55cSDimitry Andric                   XVCVDPUXWS,
155349cc55cSDimitry Andric                   XVCVSPBF16,
156349cc55cSDimitry Andric                   XVCVSPDP,
157349cc55cSDimitry Andric                   XVCVSPHP,
158349cc55cSDimitry Andric                   XVCVSPSXDS,
159349cc55cSDimitry Andric                   XVCVSPSXWS,
160349cc55cSDimitry Andric                   XVCVSPUXDS,
161349cc55cSDimitry Andric                   XVCVSPUXWS,
162349cc55cSDimitry Andric                   XVCVSXDDP,
163349cc55cSDimitry Andric                   XVCVSXDSP,
164349cc55cSDimitry Andric                   XVCVSXWDP,
165349cc55cSDimitry Andric                   XVCVSXWSP,
166349cc55cSDimitry Andric                   XVCVUXDDP,
167349cc55cSDimitry Andric                   XVCVUXDSP,
168349cc55cSDimitry Andric                   XVCVUXWDP,
169349cc55cSDimitry Andric                   XVCVUXWSP,
170349cc55cSDimitry Andric                   XVMADDADP,
171349cc55cSDimitry Andric                   XVMADDASP,
172349cc55cSDimitry Andric                   XVMADDMDP,
173349cc55cSDimitry Andric                   XVMADDMSP,
174349cc55cSDimitry Andric                   XVMSUBADP,
175349cc55cSDimitry Andric                   XVMSUBASP,
176349cc55cSDimitry Andric                   XVMSUBMDP,
177349cc55cSDimitry Andric                   XVMSUBMSP,
178349cc55cSDimitry Andric                   XVMULDP,
179349cc55cSDimitry Andric                   XVMULSP,
180349cc55cSDimitry Andric                   XVNMADDADP,
181349cc55cSDimitry Andric                   XVNMADDASP,
182349cc55cSDimitry Andric                   XVNMADDMDP,
183349cc55cSDimitry Andric                   XVNMADDMSP,
184349cc55cSDimitry Andric                   XVNMSUBADP,
185349cc55cSDimitry Andric                   XVNMSUBASP,
186349cc55cSDimitry Andric                   XVNMSUBMDP,
187349cc55cSDimitry Andric                   XVNMSUBMSP,
188349cc55cSDimitry Andric                   XVRDPI,
189349cc55cSDimitry Andric                   XVRDPIC,
190349cc55cSDimitry Andric                   XVRDPIM,
191349cc55cSDimitry Andric                   XVRDPIP,
192349cc55cSDimitry Andric                   XVRDPIZ,
193349cc55cSDimitry Andric                   XVREDP,
194349cc55cSDimitry Andric                   XVRESP,
195349cc55cSDimitry Andric                   XVRSPI,
196349cc55cSDimitry Andric                   XVRSPIC,
197349cc55cSDimitry Andric                   XVRSPIM,
198349cc55cSDimitry Andric                   XVRSPIP,
199349cc55cSDimitry Andric                   XVRSPIZ,
200349cc55cSDimitry Andric                   XVRSQRTEDP,
201349cc55cSDimitry Andric                   XVRSQRTESP,
202349cc55cSDimitry Andric                   XVSUBDP,
203349cc55cSDimitry Andric                   XVSUBSP]>
204349cc55cSDimitry Andric>;
205349cc55cSDimitry Andric
206349cc55cSDimitry Andric// Identify instructions that write CY pipelines with 7 cycles.
207349cc55cSDimitry Andricdef P10W_CY_7C_Pred : MCSchedPredicate<
208349cc55cSDimitry Andric      CheckOpcode<[CFUGED,
209349cc55cSDimitry Andric                   CNTLZDM,
210349cc55cSDimitry Andric                   CNTTZDM,
211349cc55cSDimitry Andric                   PDEPD,
212349cc55cSDimitry Andric                   PEXTD,
213349cc55cSDimitry Andric                   VCFUGED,
214349cc55cSDimitry Andric                   VCIPHER,
215349cc55cSDimitry Andric                   VCIPHERLAST,
216349cc55cSDimitry Andric                   VCLZDM,
217349cc55cSDimitry Andric                   VCTZDM,
218349cc55cSDimitry Andric                   VGNB,
219349cc55cSDimitry Andric                   VNCIPHER,
220349cc55cSDimitry Andric                   VNCIPHERLAST,
221349cc55cSDimitry Andric                   VPDEPD,
222349cc55cSDimitry Andric                   VPEXTD,
223349cc55cSDimitry Andric                   VPMSUMB,
224349cc55cSDimitry Andric                   VPMSUMD,
225349cc55cSDimitry Andric                   VPMSUMH,
226349cc55cSDimitry Andric                   VPMSUMW,
227349cc55cSDimitry Andric                   VSBOX]>
228349cc55cSDimitry Andric>;
229349cc55cSDimitry Andric
230349cc55cSDimitry Andric// Identify instructions that write MM pipelines with 10 cycles.
231349cc55cSDimitry Andricdef P10W_MM_10C_Pred : MCSchedPredicate<
232349cc55cSDimitry Andric      CheckOpcode<[PMXVBF16GER2,
233349cc55cSDimitry Andric                   PMXVBF16GER2NN,
234349cc55cSDimitry Andric                   PMXVBF16GER2NP,
235349cc55cSDimitry Andric                   PMXVBF16GER2PN,
236349cc55cSDimitry Andric                   PMXVBF16GER2PP,
237349cc55cSDimitry Andric                   PMXVF16GER2,
238349cc55cSDimitry Andric                   PMXVF16GER2NN,
239349cc55cSDimitry Andric                   PMXVF16GER2NP,
240349cc55cSDimitry Andric                   PMXVF16GER2PN,
241349cc55cSDimitry Andric                   PMXVF16GER2PP,
242349cc55cSDimitry Andric                   PMXVF32GER,
243349cc55cSDimitry Andric                   PMXVF32GERNN,
244349cc55cSDimitry Andric                   PMXVF32GERNP,
245349cc55cSDimitry Andric                   PMXVF32GERPN,
246349cc55cSDimitry Andric                   PMXVF32GERPP,
247349cc55cSDimitry Andric                   PMXVF64GER,
248349cc55cSDimitry Andric                   PMXVF64GERNN,
249349cc55cSDimitry Andric                   PMXVF64GERNP,
250349cc55cSDimitry Andric                   PMXVF64GERPN,
251349cc55cSDimitry Andric                   PMXVF64GERPP,
252349cc55cSDimitry Andric                   PMXVI16GER2,
253349cc55cSDimitry Andric                   PMXVI16GER2PP,
254349cc55cSDimitry Andric                   PMXVI16GER2S,
255349cc55cSDimitry Andric                   PMXVI16GER2SPP,
256349cc55cSDimitry Andric                   PMXVI4GER8,
257349cc55cSDimitry Andric                   PMXVI4GER8PP,
258349cc55cSDimitry Andric                   PMXVI8GER4,
259349cc55cSDimitry Andric                   PMXVI8GER4PP,
260349cc55cSDimitry Andric                   PMXVI8GER4SPP,
261349cc55cSDimitry Andric                   XVBF16GER2,
262349cc55cSDimitry Andric                   XVBF16GER2NN,
263349cc55cSDimitry Andric                   XVBF16GER2NP,
264349cc55cSDimitry Andric                   XVBF16GER2PN,
265349cc55cSDimitry Andric                   XVBF16GER2PP,
266349cc55cSDimitry Andric                   XVF16GER2,
267349cc55cSDimitry Andric                   XVF16GER2NN,
268349cc55cSDimitry Andric                   XVF16GER2NP,
269349cc55cSDimitry Andric                   XVF16GER2PN,
270349cc55cSDimitry Andric                   XVF16GER2PP,
271349cc55cSDimitry Andric                   XVF32GER,
272349cc55cSDimitry Andric                   XVF32GERNN,
273349cc55cSDimitry Andric                   XVF32GERNP,
274349cc55cSDimitry Andric                   XVF32GERPN,
275349cc55cSDimitry Andric                   XVF32GERPP,
276349cc55cSDimitry Andric                   XVF64GER,
277349cc55cSDimitry Andric                   XVF64GERNN,
278349cc55cSDimitry Andric                   XVF64GERNP,
279349cc55cSDimitry Andric                   XVF64GERPN,
280349cc55cSDimitry Andric                   XVF64GERPP,
281349cc55cSDimitry Andric                   XVI16GER2,
282349cc55cSDimitry Andric                   XVI16GER2PP,
283349cc55cSDimitry Andric                   XVI16GER2S,
284349cc55cSDimitry Andric                   XVI16GER2SPP,
285349cc55cSDimitry Andric                   XVI4GER8,
286349cc55cSDimitry Andric                   XVI4GER8PP,
287349cc55cSDimitry Andric                   XVI8GER4,
288349cc55cSDimitry Andric                   XVI8GER4PP,
289349cc55cSDimitry Andric                   XVI8GER4SPP,
290349cc55cSDimitry Andric                   XXMFACC,
291349cc55cSDimitry Andric                   XXMFACC,
292349cc55cSDimitry Andric                   XXMTACC,
293349cc55cSDimitry Andric                   XXSETACCZ]>
294349cc55cSDimitry Andric>;
295*bdd1243dSDimitry Andric
296