| // RUN: not llvm-tblgen -gen-emitter -I %p/../../include %s 2>&1 | FileCheck %s --implicit-check-not=error: |
| |
| // Check that we emit reasonable diagnostics when fields do not have |
| // corresponding operands. |
| |
| include "llvm/Target/Target.td" |
| |
| def ArchInstrInfo : InstrInfo { } |
| |
| def Arch : Target { |
| let InstructionSet = ArchInstrInfo; |
| } |
| |
| def Reg : Register<"reg">; |
| |
| def Regs : RegisterClass<"foo", [i32], 0, (add Reg)>; |
| |
| // CHECK: error: No operand named rd in record foo |
| // CHECK: error: No operand named rs in record foo |
| // CHECK: note: Dumping record for previous error: |
| def foo : Instruction { |
| bits<3> rd; |
| bits<3> rs; |
| |
| bits<8> Inst; |
| let Inst{1-0} = 0; |
| let Inst{4-2} = rd; |
| let Inst{7-5} = rs; |
| |
| let OutOperandList = (outs Regs:$xd); |
| let InOperandList = (ins); |
| } |