xref: /freebsd-src/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSchedule.td (revision 349cc55c9796c4596a5b9904cd3281af295f878f)
10b57cec5SDimitry Andric//===-- PPCSchedule.td - PowerPC Scheduling Definitions ----*- tablegen -*-===//
20b57cec5SDimitry Andric//
30b57cec5SDimitry Andric// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
40b57cec5SDimitry Andric// See https://llvm.org/LICENSE.txt for license information.
50b57cec5SDimitry Andric// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
60b57cec5SDimitry Andric//
70b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
80b57cec5SDimitry Andric
90b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
100b57cec5SDimitry Andric// Instruction Itinerary classes used for PowerPC
110b57cec5SDimitry Andric//
120b57cec5SDimitry Andricdef IIC_IntSimple    : InstrItinClass;
130b57cec5SDimitry Andricdef IIC_IntGeneral   : InstrItinClass;
140b57cec5SDimitry Andricdef IIC_IntCompare   : InstrItinClass;
150b57cec5SDimitry Andricdef IIC_IntISEL      : InstrItinClass;
160b57cec5SDimitry Andricdef IIC_IntDivD      : InstrItinClass;
170b57cec5SDimitry Andricdef IIC_IntDivW      : InstrItinClass;
180b57cec5SDimitry Andricdef IIC_IntMFFS      : InstrItinClass;
190b57cec5SDimitry Andricdef IIC_IntMFVSCR    : InstrItinClass;
200b57cec5SDimitry Andricdef IIC_IntMTFSB0    : InstrItinClass;
210b57cec5SDimitry Andricdef IIC_IntMTSRD     : InstrItinClass;
220b57cec5SDimitry Andricdef IIC_IntMulHD     : InstrItinClass;
230b57cec5SDimitry Andricdef IIC_IntMulHW     : InstrItinClass;
240b57cec5SDimitry Andricdef IIC_IntMulHWU    : InstrItinClass;
250b57cec5SDimitry Andricdef IIC_IntMulLI     : InstrItinClass;
260b57cec5SDimitry Andricdef IIC_IntRFID      : InstrItinClass;
270b57cec5SDimitry Andricdef IIC_IntRotateD   : InstrItinClass;
280b57cec5SDimitry Andricdef IIC_IntRotateDI  : InstrItinClass;
290b57cec5SDimitry Andricdef IIC_IntRotate    : InstrItinClass;
300b57cec5SDimitry Andricdef IIC_IntShift     : InstrItinClass;
310b57cec5SDimitry Andricdef IIC_IntTrapD     : InstrItinClass;
320b57cec5SDimitry Andricdef IIC_IntTrapW     : InstrItinClass;
330b57cec5SDimitry Andricdef IIC_BrB          : InstrItinClass;
340b57cec5SDimitry Andricdef IIC_BrCR         : InstrItinClass;
350b57cec5SDimitry Andricdef IIC_BrMCR        : InstrItinClass;
360b57cec5SDimitry Andricdef IIC_BrMCRX       : InstrItinClass;
370b57cec5SDimitry Andricdef IIC_LdStDCBA     : InstrItinClass;
380b57cec5SDimitry Andricdef IIC_LdStDCBF     : InstrItinClass;
390b57cec5SDimitry Andricdef IIC_LdStDCBI     : InstrItinClass;
400b57cec5SDimitry Andricdef IIC_LdStLoad     : InstrItinClass;
410b57cec5SDimitry Andricdef IIC_LdStLoadUpd  : InstrItinClass;
420b57cec5SDimitry Andricdef IIC_LdStLoadUpdX : InstrItinClass;
430b57cec5SDimitry Andricdef IIC_LdStStore    : InstrItinClass;
440b57cec5SDimitry Andricdef IIC_LdStDSS      : InstrItinClass;
450b57cec5SDimitry Andricdef IIC_LdStICBI     : InstrItinClass;
460b57cec5SDimitry Andricdef IIC_LdStLD       : InstrItinClass;
470b57cec5SDimitry Andricdef IIC_LdStLDU      : InstrItinClass;
480b57cec5SDimitry Andricdef IIC_LdStLDUX     : InstrItinClass;
490b57cec5SDimitry Andricdef IIC_LdStLDARX    : InstrItinClass;
500b57cec5SDimitry Andricdef IIC_LdStLFD      : InstrItinClass;
510b57cec5SDimitry Andricdef IIC_LdStLFDU     : InstrItinClass;
520b57cec5SDimitry Andricdef IIC_LdStLFDUX    : InstrItinClass;
530b57cec5SDimitry Andricdef IIC_LdStLHA      : InstrItinClass;
540b57cec5SDimitry Andricdef IIC_LdStLHAU     : InstrItinClass;
550b57cec5SDimitry Andricdef IIC_LdStLHAUX    : InstrItinClass;
560b57cec5SDimitry Andricdef IIC_LdStLMW      : InstrItinClass;
57fe6060f1SDimitry Andricdef IIC_LdStLQ       : InstrItinClass;
58fe6060f1SDimitry Andricdef IIC_LdStLQARX    : InstrItinClass;
590b57cec5SDimitry Andricdef IIC_LdStLVecX    : InstrItinClass;
600b57cec5SDimitry Andricdef IIC_LdStLWA      : InstrItinClass;
610b57cec5SDimitry Andricdef IIC_LdStLWARX    : InstrItinClass;
620b57cec5SDimitry Andricdef IIC_LdStSLBIA    : InstrItinClass;
630b57cec5SDimitry Andricdef IIC_LdStSLBIE    : InstrItinClass;
640b57cec5SDimitry Andricdef IIC_LdStSTD      : InstrItinClass;
650b57cec5SDimitry Andricdef IIC_LdStSTDCX    : InstrItinClass;
66fe6060f1SDimitry Andricdef IIC_LdStSTQ      : InstrItinClass;
67fe6060f1SDimitry Andricdef IIC_LdStSTQCX    : InstrItinClass;
680b57cec5SDimitry Andricdef IIC_LdStSTU      : InstrItinClass;
690b57cec5SDimitry Andricdef IIC_LdStSTUX     : InstrItinClass;
700b57cec5SDimitry Andricdef IIC_LdStSTFD     : InstrItinClass;
710b57cec5SDimitry Andricdef IIC_LdStSTFDU    : InstrItinClass;
720b57cec5SDimitry Andricdef IIC_LdStSTVEBX   : InstrItinClass;
730b57cec5SDimitry Andricdef IIC_LdStSTWCX    : InstrItinClass;
740b57cec5SDimitry Andricdef IIC_LdStSync     : InstrItinClass;
750b57cec5SDimitry Andricdef IIC_LdStCOPY     : InstrItinClass;
760b57cec5SDimitry Andricdef IIC_LdStPASTE    : InstrItinClass;
770b57cec5SDimitry Andricdef IIC_SprISYNC     : InstrItinClass;
780b57cec5SDimitry Andricdef IIC_SprMFSR      : InstrItinClass;
790b57cec5SDimitry Andricdef IIC_SprMTMSR     : InstrItinClass;
800b57cec5SDimitry Andricdef IIC_SprMTSR      : InstrItinClass;
810b57cec5SDimitry Andricdef IIC_SprTLBSYNC   : InstrItinClass;
820b57cec5SDimitry Andricdef IIC_SprMFCR      : InstrItinClass;
830b57cec5SDimitry Andricdef IIC_SprMFCRF     : InstrItinClass;
840b57cec5SDimitry Andricdef IIC_SprMFMSR     : InstrItinClass;
850b57cec5SDimitry Andricdef IIC_SprMFSPR     : InstrItinClass;
860b57cec5SDimitry Andricdef IIC_SprMFTB      : InstrItinClass;
870b57cec5SDimitry Andricdef IIC_SprMTSPR     : InstrItinClass;
880b57cec5SDimitry Andricdef IIC_SprMTSRIN    : InstrItinClass;
890b57cec5SDimitry Andricdef IIC_SprRFI       : InstrItinClass;
900b57cec5SDimitry Andricdef IIC_SprSC        : InstrItinClass;
910b57cec5SDimitry Andricdef IIC_FPGeneral    : InstrItinClass;
920b57cec5SDimitry Andricdef IIC_FPDGeneral   : InstrItinClass;
930b57cec5SDimitry Andricdef IIC_FPSGeneral   : InstrItinClass;
940b57cec5SDimitry Andricdef IIC_FPAddSub     : InstrItinClass;
950b57cec5SDimitry Andricdef IIC_FPCompare    : InstrItinClass;
960b57cec5SDimitry Andricdef IIC_FPDivD       : InstrItinClass;
970b57cec5SDimitry Andricdef IIC_FPDivS       : InstrItinClass;
980b57cec5SDimitry Andricdef IIC_FPFused      : InstrItinClass;
990b57cec5SDimitry Andricdef IIC_FPRes        : InstrItinClass;
1000b57cec5SDimitry Andricdef IIC_FPSqrtD      : InstrItinClass;
1010b57cec5SDimitry Andricdef IIC_FPSqrtS      : InstrItinClass;
1020b57cec5SDimitry Andricdef IIC_VecGeneral   : InstrItinClass;
1030b57cec5SDimitry Andricdef IIC_VecFP        : InstrItinClass;
1040b57cec5SDimitry Andricdef IIC_VecFPCompare : InstrItinClass;
1050b57cec5SDimitry Andricdef IIC_VecComplex   : InstrItinClass;
1060b57cec5SDimitry Andricdef IIC_VecPerm      : InstrItinClass;
1070b57cec5SDimitry Andricdef IIC_VecFPRound   : InstrItinClass;
1080b57cec5SDimitry Andricdef IIC_VecVSL       : InstrItinClass;
1090b57cec5SDimitry Andricdef IIC_VecVSR       : InstrItinClass;
1100b57cec5SDimitry Andricdef IIC_SprMTMSRD    : InstrItinClass;
1110b57cec5SDimitry Andricdef IIC_SprSLIE      : InstrItinClass;
1120b57cec5SDimitry Andricdef IIC_SprSLBFEE    : InstrItinClass;
1130b57cec5SDimitry Andricdef IIC_SprSLBIE     : InstrItinClass;
1140b57cec5SDimitry Andricdef IIC_SprSLBIEG    : InstrItinClass;
1150b57cec5SDimitry Andricdef IIC_SprSLBMTE    : InstrItinClass;
1160b57cec5SDimitry Andricdef IIC_SprSLBMFEE   : InstrItinClass;
1170b57cec5SDimitry Andricdef IIC_SprSLBMFEV   : InstrItinClass;
1180b57cec5SDimitry Andricdef IIC_SprSLBIA     : InstrItinClass;
1190b57cec5SDimitry Andricdef IIC_SprSLBSYNC   : InstrItinClass;
1200b57cec5SDimitry Andricdef IIC_SprTLBIA     : InstrItinClass;
1210b57cec5SDimitry Andricdef IIC_SprTLBIEL    : InstrItinClass;
1220b57cec5SDimitry Andricdef IIC_SprTLBIE     : InstrItinClass;
1230b57cec5SDimitry Andricdef IIC_SprABORT     : InstrItinClass;
1240b57cec5SDimitry Andricdef IIC_SprMSGSYNC   : InstrItinClass;
1250b57cec5SDimitry Andricdef IIC_SprSTOP      : InstrItinClass;
1260b57cec5SDimitry Andricdef IIC_SprMFPMR     : InstrItinClass;
1270b57cec5SDimitry Andricdef IIC_SprMTPMR     : InstrItinClass;
1280b57cec5SDimitry Andric
1290b57cec5SDimitry Andric//===----------------------------------------------------------------------===//
1300b57cec5SDimitry Andric// Processor instruction itineraries.
131*349cc55cSDimitry Andricinclude "PPCInstrInfo.td"
1320b57cec5SDimitry Andric
133*349cc55cSDimitry Andricinclude "PPCSchedPredicates.td"
1340b57cec5SDimitry Andricinclude "PPCScheduleG3.td"
1350b57cec5SDimitry Andricinclude "PPCSchedule440.td"
1360b57cec5SDimitry Andricinclude "PPCScheduleG4.td"
1370b57cec5SDimitry Andricinclude "PPCScheduleG4Plus.td"
1380b57cec5SDimitry Andricinclude "PPCScheduleG5.td"
1390b57cec5SDimitry Andricinclude "PPCScheduleP7.td"
1400b57cec5SDimitry Andricinclude "PPCScheduleP8.td"
1410b57cec5SDimitry Andricinclude "PPCScheduleP9.td"
142*349cc55cSDimitry Andricinclude "PPCScheduleP10.td"
1430b57cec5SDimitry Andricinclude "PPCScheduleA2.td"
1440b57cec5SDimitry Andricinclude "PPCScheduleE500.td"
1450b57cec5SDimitry Andricinclude "PPCScheduleE500mc.td"
1460b57cec5SDimitry Andricinclude "PPCScheduleE5500.td"
147