//===--- PPCSchedPredicates.td - PowerPC Scheduling Preds -*- tablegen -*-===//
//
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
//
//===----------------------------------------------------------------------===//
// Automatically generated file, do not edit!
//
// This file defines scheduling predicate definitions that are used by the
// PowerPC subtargets.
//===----------------------------------------------------------------------===//
// Identify instructions that write BF pipelines with 7 cycles.
def P10W_BF_7C_Pred : MCSchedPredicate<
CheckOpcode<[FADD,
FADDS,
FADDS_rec,
FADD_rec,
FCFID,
FCFIDS,
FCFIDS_rec,
FCFIDU,
FCFIDUS,
FCFIDUS_rec,
FCFIDU_rec,
FCFID_rec,
FCTID,
FCTIDU,
FCTIDUZ,
FCTIDUZ_rec,
FCTIDU_rec,
FCTIDZ,
FCTIDZ_rec,
FCTID_rec,
FCTIW,
FCTIWU,
FCTIWUZ,
FCTIWUZ_rec,
FCTIWU_rec,
FCTIWZ,
FCTIWZ_rec,
FCTIW_rec,
FMADD,
FMADDS,
FMADDS_rec,
FMADD_rec,
FMSUB,
FMSUBS,
FMSUBS_rec,
FMSUB_rec,
FMUL,
FMULS,
FMULS_rec,
FMUL_rec,
FNMADD,
FNMADDS,
FNMADDS_rec,
FNMADD_rec,
FNMSUB,
FNMSUBS,
FNMSUBS_rec,
FNMSUB_rec,
FRE,
FRES,
FRES_rec,
FRE_rec,
FRIMD, FRIMS,
FRIMD_rec, FRIMS_rec,
FRIND, FRINS,
FRIND_rec, FRINS_rec,
FRIPD, FRIPS,
FRIPD_rec, FRIPS_rec,
FRIZD, FRIZS,
FRIZD_rec, FRIZS_rec,
FRSP,
FRSP_rec,
FRSQRTE,
FRSQRTES,
FRSQRTES_rec,
FRSQRTE_rec,
FSELD, FSELS,
FSELD_rec, FSELS_rec,
FSUB,
FSUBS,
FSUBS_rec,
FSUB_rec,
VADDFP,
VCFSX, VCFSX_0,
VCFUX, VCFUX_0,
VCTSXS, VCTSXS_0,
VCTUXS, VCTUXS_0,
VEXPTEFP,
VEXPTEFP,
VLOGEFP,
VMADDFP,
VNMSUBFP,
VREFP,
VRFIM,
VRFIN,
VRFIP,
VRFIZ,
VRSQRTEFP,
VSUBFP,
XSADDDP,
XSADDSP,
XSCVDPHP,
XSCVDPSP,
XSCVDPSPN,
XSCVDPSXDS, XSCVDPSXDSs,
XSCVDPSXWS, XSCVDPSXWSs,
XSCVDPUXDS, XSCVDPUXDSs,
XSCVDPUXWS, XSCVDPUXWSs,
XSCVSPDP,
XSCVSXDDP,
XSCVSXDSP,
XSCVUXDDP,
XSCVUXDSP,
XSMADDADP,
XSMADDASP,
XSMADDMDP,
XSMADDMSP,
XSMSUBADP,
XSMSUBASP,
XSMSUBMDP,
XSMSUBMSP,
XSMULDP,
XSMULSP,
XSNMADDADP,
XSNMADDASP,
XSNMADDMDP,
XSNMADDMSP,
XSNMSUBADP,
XSNMSUBASP,
XSNMSUBMDP,
XSNMSUBMSP,
XSRDPI,
XSRDPIC,
XSRDPIM,
XSRDPIP,
XSRDPIZ,
XSREDP,
XSRESP,
XSRSP,
XSRSQRTEDP,
XSRSQRTESP,
XSSUBDP,
XSSUBSP,
XVADDDP,
XVADDSP,
XVCVDPSP,
XVCVDPSXDS,
XVCVDPSXWS,
XVCVDPUXDS,
XVCVDPUXWS,
XVCVSPBF16,
XVCVSPDP,
XVCVSPHP,
XVCVSPSXDS,
XVCVSPSXWS,
XVCVSPUXDS,
XVCVSPUXWS,
XVCVSXDDP,
XVCVSXDSP,
XVCVSXWDP,
XVCVSXWSP,
XVCVUXDDP,
XVCVUXDSP,
XVCVUXWDP,
XVCVUXWSP,
XVMADDADP,
XVMADDASP,
XVMADDMDP,
XVMADDMSP,
XVMSUBADP,
XVMSUBASP,
XVMSUBMDP,
XVMSUBMSP,
XVMULDP,
XVMULSP,
XVNMADDADP,
XVNMADDASP,
XVNMADDMDP,
XVNMADDMSP,
XVNMSUBADP,
XVNMSUBASP,
XVNMSUBMDP,
XVNMSUBMSP,
XVRDPI,
XVRDPIC,
XVRDPIM,
XVRDPIP,
XVRDPIZ,
XVREDP,
XVRESP,
XVRSPI,
XVRSPIC,
XVRSPIM,
XVRSPIP,
XVRSPIZ,
XVRSQRTEDP,
XVRSQRTESP,
XVSUBDP,
XVSUBSP]>
>;
// Identify instructions that write CY pipelines with 7 cycles.
def P10W_CY_7C_Pred : MCSchedPredicate<
CheckOpcode<[CFUGED,
CNTLZDM,
CNTTZDM,
PDEPD,
PEXTD,
VCFUGED,
VCIPHER,
VCIPHERLAST,
VCLZDM,
VCTZDM,
VGNB,
VNCIPHER,
VNCIPHERLAST,
VPDEPD,
VPEXTD,
VPMSUMB,
VPMSUMD,
VPMSUMH,
VPMSUMW,
VSBOX]>
>;
// Identify instructions that write MM pipelines with 10 cycles.
def P10W_MM_10C_Pred : MCSchedPredicate<
CheckOpcode<[PMXVBF16GER2,
PMXVBF16GER2NN,
PMXVBF16GER2NP,
PMXVBF16GER2PN,
PMXVBF16GER2PP,
PMXVF16GER2,
PMXVF16GER2NN,
PMXVF16GER2NP,
PMXVF16GER2PN,
PMXVF16GER2PP,
PMXVF32GER,
PMXVF32GERNN,
PMXVF32GERNP,
PMXVF32GERPN,
PMXVF32GERPP,
PMXVF64GER,
PMXVF64GERNN,
PMXVF64GERNP,
PMXVF64GERPN,
PMXVF64GERPP,
PMXVI16GER2,
PMXVI16GER2PP,
PMXVI16GER2S,
PMXVI16GER2SPP,
PMXVI4GER8,
PMXVI4GER8PP,
PMXVI8GER4,
PMXVI8GER4PP,
PMXVI8GER4SPP,
XVBF16GER2,
XVBF16GER2NN,
XVBF16GER2NP,
XVBF16GER2PN,
XVBF16GER2PP,
XVF16GER2,
XVF16GER2NN,
XVF16GER2NP,
XVF16GER2PN,
XVF16GER2PP,
XVF32GER,
XVF32GERNN,
XVF32GERNP,
XVF32GERPN,
XVF32GERPP,
XVF64GER,
XVF64GERNN,
XVF64GERNP,
XVF64GERPN,
XVF64GERPP,
XVI16GER2,
XVI16GER2PP,
XVI16GER2S,
XVI16GER2SPP,
XVI4GER8,
XVI4GER8PP,
XVI8GER4,
XVI8GER4PP,
XVI8GER4SPP,
XXMFACC,
XXMFACC,
XXMTACC,
XXSETACCZ]>
>;