1// RUN: llvm-tblgen -gen-searchable-tables -I %p/../../include %s | FileCheck %s 2// XFAIL: vg_leak 3 4include "llvm/TableGen/SearchableTable.td" 5 6// CHECK-LABEL: GET_InstrTable_IMPL 7// CHECK: const MyInstr InstrTable[] = { 8// CHECK: { B, 0xA }, 9// CHECK: { C, 0x0 }, 10// CHECK: { A, 0x5 }, 11// CHECK: { D, 0x8 }, 12// CHECK: }; 13 14class Instruction { 15 bit isPseudo = 0; 16} 17 18class MyInstr<int op> : Instruction { 19 Instruction Opcode = !cast<Instruction>(NAME); 20 bits<16> CustomEncoding = op; 21} 22 23def A : MyInstr<5>; 24def D : MyInstr<8>; 25let isPseudo = 1 in { 26 def C : MyInstr<0>; 27 def B : MyInstr<10>; 28} 29 30def InstrTable : GenericTable { 31 let FilterClass = "MyInstr"; 32 let Fields = ["Opcode", "CustomEncoding"]; 33 34 let PrimaryKey = ["Opcode"]; 35 let PrimaryKeyName = "getCustomEncodingHelper"; 36} 37