brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.2 KiB · 6237bfb Raw
40 lines · plain
1// RUN: llvm-tblgen -gen-dfa-packetizer -I %p/../../include %s | FileCheck %s2 3include "llvm/Target/Target.td"4 5def TestTarget : Target;6 7def TestSchedModel : SchedMachineModel {8  let CompleteModel = 0;9}10 11def TestProcessor1 : ProcessorModel<"testprocessor1", TestSchedModel, []>;12 13def FU0 : FuncUnit;14def FU1 : FuncUnit;15 16def OP0 : InstrItinClass;17def OP1 : InstrItinClass;18 19def Itin {20  list<InstrItinData> ItinList = [21    InstrItinData<OP0, [InstrStage<1, [FU0]>]>,22    InstrItinData<OP1, [InstrStage<1, [FU1]>]>,23  ];24}25 26// CHECK:      int TestTargetGetResourceIndex(unsigned ProcID) {27// CHECK-NEXT:   static const unsigned TestTargetProcIdToProcResourceIdxTable[][2] = {28// CHECK-NEXT:     { 2,  1 }, // TestItinerariesModel29// CHECK-NEXT:   };30// CHECK-NEXT:   auto It = llvm::lower_bound(TestTargetProcIdToProcResourceIdxTable, ProcID,31// CHECK-NEXT:       [](const unsigned LHS[], unsigned Val) { return LHS[0] < Val; });32// CHECK-NEXT:   assert(*It[0] == ProcID);33// CHECK-NEXT:   return (*It)[1];34// CHECK-NEXT: }35 36// CHECK:  unsigned Index = TestTargetGetResourceIndex(IID->SchedModel.ProcID);37 38def TestItineraries: ProcessorItineraries<[], [], Itin.ItinList>;39def TestProcessor2 : Processor<"testprocessor2", TestItineraries, []>;40