41 lines · plain
1// RUN: not llvm-tblgen -gen-instr-info -I %p/../../include %s 2>&1 | FileCheck %s2 3// This test verifies that TableGen is displaying an error when mapped instruction4// does not contain a field listed under RowFields.5 6include "llvm/Target/Target.td"7 8class SimpleReg<string n> : Register<n> {9 let Namespace = "Simple";10}11def R0 : SimpleReg<"r0">;12def SimpleRegClass : RegisterClass<"Simple",[i32],0,(add R0)>;13def SimpleInstrInfo : InstrInfo;14 15def SimpleTarget : Target {16 let InstructionSet = SimpleInstrInfo;17}18 19class SimpleRel;20 21def REL_DEF : InstrMapping {22 let FilterClass = "SimpleRel";23 let RowFields = ["BaseName"];24 let ColFields = ["Col"];25 let KeyCol = ["KeyCol"];26 let ValueCols = [["ValCol"]];27}28 29class INSTR_DEF : Instruction {30 let Namespace = "Simple";31 let OutOperandList = (outs);32 let InOperandList = (ins);33 string Basename = "";34 string Col = "";35}36 37def SimpleInstr : SimpleRel, INSTR_DEF;38 39// CHECK: error: No value "BaseName" found in "SimpleInstr" instruction description.40// CHECK: def SimpleInstr : SimpleRel, INSTR_DEF;41