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