xref: /freebsd/contrib/llvm-project/llvm/lib/Target/PowerPC/PPCSchedule.td (revision fe6060f10f634930ff71b7c50291ddc610da2475)
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;
57*fe6060f1SDimitry Andricdef IIC_LdStLQ       : InstrItinClass;
58*fe6060f1SDimitry 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;
66*fe6060f1SDimitry Andricdef IIC_LdStSTQ      : InstrItinClass;
67*fe6060f1SDimitry 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.
1310b57cec5SDimitry Andric
1320b57cec5SDimitry Andricinclude "PPCScheduleG3.td"
1330b57cec5SDimitry Andricinclude "PPCSchedule440.td"
1340b57cec5SDimitry Andricinclude "PPCScheduleG4.td"
1350b57cec5SDimitry Andricinclude "PPCScheduleG4Plus.td"
1360b57cec5SDimitry Andricinclude "PPCScheduleG5.td"
1370b57cec5SDimitry Andricinclude "PPCScheduleP7.td"
1380b57cec5SDimitry Andricinclude "PPCScheduleP8.td"
1390b57cec5SDimitry Andricinclude "PPCScheduleP9.td"
1400b57cec5SDimitry Andricinclude "PPCScheduleA2.td"
1410b57cec5SDimitry Andricinclude "PPCScheduleE500.td"
1420b57cec5SDimitry Andricinclude "PPCScheduleE500mc.td"
1430b57cec5SDimitry Andricinclude "PPCScheduleE5500.td"
144