|  | // RUN: llvm-tblgen -gen-searchable-tables -I %p/../../include %s | FileCheck %s | 
|  | // XFAIL: vg_leak | 
|  |  | 
|  | include "llvm/TableGen/SearchableTable.td" | 
|  |  | 
|  | // CHECK-LABEL: GET_InstrTable_IMPL | 
|  | // CHECK: const MyInstr InstrTable[] = { | 
|  | // CHECK:   { B, 0xA }, | 
|  | // CHECK:   { C, 0x0 }, | 
|  | // CHECK:   { A, 0x5 }, | 
|  | // CHECK:   { D, 0x8 }, | 
|  | // CHECK: }; | 
|  |  | 
|  | class Instruction { | 
|  | bit isPseudo = 0; | 
|  | } | 
|  |  | 
|  | class MyInstr<int op> : Instruction { | 
|  | Instruction Opcode = !cast<Instruction>(NAME); | 
|  | bits<16> CustomEncoding = op; | 
|  | } | 
|  |  | 
|  | def A : MyInstr<5>; | 
|  | def D : MyInstr<8>; | 
|  | let isPseudo = 1 in { | 
|  | def C : MyInstr<0>; | 
|  | def B : MyInstr<10>; | 
|  | } | 
|  |  | 
|  | def InstrTable : GenericTable { | 
|  | let FilterClass = "MyInstr"; | 
|  | let Fields = ["Opcode", "CustomEncoding"]; | 
|  |  | 
|  | let PrimaryKey = ["Opcode"]; | 
|  | let PrimaryKeyName = "getCustomEncodingHelper"; | 
|  | } |