Add gfx950 mfma instructions to ROCDL dialect (#123361)
[llvm-project.git] / llvm / lib / Target / Hexagon / HexagonScheduleV75.td
blob0f23f39b2f509c1f09c7e1c42a6bd11c4c587120
1 //=-HexagonScheduleV75.td - HexagonV75 Scheduling Definitions *- tablegen -*-=//
2 //
3 //                     The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
10 def HexagonV75ItinList : DepScalarItinV75, ScalarItin,
11                          DepHVXItinV75, HVXItin, PseudoItin {
12   list<InstrItinData> ItinList =
13     !listconcat(DepScalarItinV75_list, ScalarItin_list,
14                 DepHVXItinV75_list, HVXItin_list, PseudoItin_list);
17 def HexagonItinerariesV75 :
18       ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP,
19                             CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1,
20                             CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL,
21                             CVI_ALL_NOMEM, CVI_ZW],
22                             [Hex_FWD, HVX_FWD],
23                             HexagonV75ItinList.ItinList>;
25 def HexagonModelV75 : SchedMachineModel {
26   // Max issue per cycle == bundle width.
27   let IssueWidth = 4;
28   let Itineraries = HexagonItinerariesV75;
29   let LoadLatency = 1;
30   let CompleteModel = 0;
33 //===----------------------------------------------------------------------===//
34 // Hexagon V75 Resource Definitions -
35 //===----------------------------------------------------------------------===//