| // 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"; |
| } |