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