xref: /llvm-project/llvm/lib/Target/Hexagon/HexagonScheduleV68.td (revision 0bb198510210da2dc64b47e37a930ce62a04cd68)
1*0bb19851SKrzysztof Parzyszek//=-HexagonScheduleV68.td - HexagonV68 Scheduling Definitions *- tablegen -*-=//
2*0bb19851SKrzysztof Parzyszek//
3*0bb19851SKrzysztof Parzyszek// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4*0bb19851SKrzysztof Parzyszek// See https://llvm.org/LICENSE.txt for license information.
5*0bb19851SKrzysztof Parzyszek// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6*0bb19851SKrzysztof Parzyszek//
7*0bb19851SKrzysztof Parzyszek//===----------------------------------------------------------------------===//
8*0bb19851SKrzysztof Parzyszek
9*0bb19851SKrzysztof Parzyszek//
10*0bb19851SKrzysztof Parzyszek// ScalarItin and HVXItin contain some old itineraries
11*0bb19851SKrzysztof Parzyszek// still used by a handful of instructions. Hopefully, we will be able
12*0bb19851SKrzysztof Parzyszek// to get rid of them soon.
13*0bb19851SKrzysztof Parzyszekdef HexagonV68ItinList : DepScalarItinV68, ScalarItin,
14*0bb19851SKrzysztof Parzyszek                         DepHVXItinV68, HVXItin, PseudoItin {
15*0bb19851SKrzysztof Parzyszek  list<InstrItinData> ItinList =
16*0bb19851SKrzysztof Parzyszek    !listconcat(DepScalarItinV68_list, ScalarItin_list,
17*0bb19851SKrzysztof Parzyszek                DepHVXItinV68_list, HVXItin_list, PseudoItin_list);
18*0bb19851SKrzysztof Parzyszek}
19*0bb19851SKrzysztof Parzyszek
20*0bb19851SKrzysztof Parzyszekdef HexagonItinerariesV68 :
21*0bb19851SKrzysztof Parzyszek      ProcessorItineraries<[SLOT0, SLOT1, SLOT2, SLOT3, SLOT_ENDLOOP,
22*0bb19851SKrzysztof Parzyszek                            CVI_ST, CVI_XLANE, CVI_SHIFT, CVI_MPY0, CVI_MPY1,
23*0bb19851SKrzysztof Parzyszek                            CVI_LD, CVI_XLSHF, CVI_MPY01, CVI_ALL,
24*0bb19851SKrzysztof Parzyszek                            CVI_ALL_NOMEM, CVI_ZW],
25*0bb19851SKrzysztof Parzyszek                            [Hex_FWD, HVX_FWD],
26*0bb19851SKrzysztof Parzyszek                            HexagonV68ItinList.ItinList>;
27*0bb19851SKrzysztof Parzyszek
28*0bb19851SKrzysztof Parzyszekdef HexagonModelV68 : SchedMachineModel {
29*0bb19851SKrzysztof Parzyszek  // Max issue per cycle == bundle width.
30*0bb19851SKrzysztof Parzyszek  let IssueWidth = 4;
31*0bb19851SKrzysztof Parzyszek  let Itineraries = HexagonItinerariesV68;
32*0bb19851SKrzysztof Parzyszek  let LoadLatency = 1;
33*0bb19851SKrzysztof Parzyszek  let CompleteModel = 0;
34*0bb19851SKrzysztof Parzyszek}
35*0bb19851SKrzysztof Parzyszek
36*0bb19851SKrzysztof Parzyszek//===----------------------------------------------------------------------===//
37*0bb19851SKrzysztof Parzyszek// Hexagon V68 Resource Definitions -
38*0bb19851SKrzysztof Parzyszek//===----------------------------------------------------------------------===//
39