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