//===-- SPUSchedule.td - Cell Scheduling Definitions -------*- tablegen -*-===//
//
//                     The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//

//===----------------------------------------------------------------------===//
// Even pipeline:

def EVEN_UNIT : FuncUnit;       // Even execution unit: (PC & 0x7 == 000)
def ODD_UNIT  : FuncUnit;       // Odd execution unit:  (PC & 0x7 == 100)

//===----------------------------------------------------------------------===//
// Instruction Itinerary classes used for Cell SPU
//===----------------------------------------------------------------------===//

def LoadStore    : InstrItinClass;              // ODD_UNIT
def BranchHints  : InstrItinClass;              // ODD_UNIT
def BranchResolv : InstrItinClass;              // ODD_UNIT
def ChanOpSPR    : InstrItinClass;              // ODD_UNIT
def ShuffleOp    : InstrItinClass;              // ODD_UNIT
def SelectOp     : InstrItinClass;              // ODD_UNIT
def GatherOp     : InstrItinClass;              // ODD_UNIT
def LoadNOP      : InstrItinClass;              // ODD_UNIT
def ExecNOP      : InstrItinClass;              // EVEN_UNIT
def SPrecFP      : InstrItinClass;              // EVEN_UNIT
def DPrecFP      : InstrItinClass;              // EVEN_UNIT
def FPInt        : InstrItinClass;              // EVEN_UNIT (FP<->integer)
def ByteOp       : InstrItinClass;              // EVEN_UNIT
def IntegerOp    : InstrItinClass;              // EVEN_UNIT
def IntegerMulDiv: InstrItinClass;              // EVEN_UNIT
def RotShiftVec  : InstrItinClass;              // EVEN_UNIT Inter vector
def RotShiftQuad : InstrItinClass;              // ODD_UNIT Entire quad
def ImmLoad      : InstrItinClass;              // EVEN_UNIT

/* Note: The itinerary for the Cell SPU is somewhat contrived... */
def SPUItineraries : ProcessorItineraries<[ODD_UNIT, EVEN_UNIT], [], [
  InstrItinData<LoadStore   , [InstrStage<6,  [ODD_UNIT]>]>,
  InstrItinData<BranchHints , [InstrStage<6,  [ODD_UNIT]>]>,
  InstrItinData<BranchResolv, [InstrStage<4,  [ODD_UNIT]>]>,
  InstrItinData<ChanOpSPR   , [InstrStage<6,  [ODD_UNIT]>]>,
  InstrItinData<ShuffleOp   , [InstrStage<4,  [ODD_UNIT]>]>,
  InstrItinData<SelectOp    , [InstrStage<4,  [ODD_UNIT]>]>,
  InstrItinData<GatherOp    , [InstrStage<4,  [ODD_UNIT]>]>,
  InstrItinData<LoadNOP     , [InstrStage<1,  [ODD_UNIT]>]>,
  InstrItinData<ExecNOP     , [InstrStage<1,  [EVEN_UNIT]>]>,
  InstrItinData<SPrecFP     , [InstrStage<6,  [EVEN_UNIT]>]>,
  InstrItinData<DPrecFP     , [InstrStage<13, [EVEN_UNIT]>]>,
  InstrItinData<FPInt       , [InstrStage<2,  [EVEN_UNIT]>]>,
  InstrItinData<ByteOp      , [InstrStage<4,  [EVEN_UNIT]>]>,
  InstrItinData<IntegerOp   , [InstrStage<2,  [EVEN_UNIT]>]>,
  InstrItinData<RotShiftVec , [InstrStage<4,  [EVEN_UNIT]>]>, 
  InstrItinData<RotShiftQuad, [InstrStage<4,  [ODD_UNIT]>]>,
  InstrItinData<IntegerMulDiv,[InstrStage<7,  [EVEN_UNIT]>]>,
  InstrItinData<ImmLoad     , [InstrStage<2,  [EVEN_UNIT]>]>
  ]>;
