// RUN: llvm-tblgen -gen-dfa-packetizer -I %p/../../include %s | FileCheck %s include "llvm/Target/Target.td" def TestTarget : Target; def TestSchedModel : SchedMachineModel { let CompleteModel = 0; } def TestProcessor1 : ProcessorModel<"testprocessor1", TestSchedModel, []>; def FU0 : FuncUnit; def FU1 : FuncUnit; def OP0 : InstrItinClass; def OP1 : InstrItinClass; def Itin { list ItinList = [ InstrItinData]>, InstrItinData]>, ]; } // CHECK: int TestTargetGetResourceIndex(unsigned ProcID) { // CHECK-NEXT: static const unsigned TestTargetProcIdToProcResourceIdxTable[][2] = { // CHECK-NEXT: { 2, 1 }, // TestItinerariesModel // CHECK-NEXT: }; // CHECK-NEXT: auto It = llvm::lower_bound(TestTargetProcIdToProcResourceIdxTable, ProcID, // CHECK-NEXT: [](const unsigned LHS[], unsigned Val) { return LHS[0] < Val; }); // CHECK-NEXT: assert(*It[0] == ProcID); // CHECK-NEXT: return (*It)[1]; // CHECK-NEXT: } // CHECK: unsigned Index = TestTargetGetResourceIndex(IID->SchedModel.ProcID); def TestItineraries: ProcessorItineraries<[], [], Itin.ItinList>; def TestProcessor2 : Processor<"testprocessor2", TestItineraries, []>;