llvm/llvm/test/TableGen/ReadAdvanceInvalidWrite.td

// RUN: not llvm-tblgen -gen-subtarget -I %p/../../include %s 2>&1 | FileCheck %s

// Make sure we don't form ReadAdvances with ValidWrites entries that are not
// associated with any instructions.

include "llvm/Target/Target.td"

def TargetX : Target;

def WriteX : SchedWrite;
def WriteY : SchedWrite;
def ReadX : SchedRead;

def InstX : Instruction {
  let OutOperandList = (outs);
  let InOperandList = (ins);
  let SchedRW = [WriteX, ReadX];
}

def SchedModelX: SchedMachineModel {
  let CompleteModel = 0;
}

let SchedModel = SchedModelX in {
  def : ReadAdvance<ReadX, 1, [WriteX, WriteY]>;
  // CHECK: error: ReadAdvance referencing a ValidWrite that is not used by any instruction (WriteY)
}

def ProcessorX: ProcessorModel<"ProcessorX", SchedModelX, []>;