[docs] Add LICENSE.txt to the root of the mono-repo
[llvm-project.git] / llvm / test / TableGen / generic-tables-instruction.td
bloba3bed650890bd3609d385061f1faa92fa2e46bec
1 // RUN: llvm-tblgen -gen-searchable-tables -I %p/../../include %s | FileCheck %s
2 // XFAIL: vg_leak
4 include "llvm/TableGen/SearchableTable.td"
6 // CHECK-LABEL: GET_InstrTable_IMPL
7 // CHECK: constexpr MyInstr InstrTable[] = {
8 // CHECK:   { B, 0xA },
9 // CHECK:   { C, 0x0 },
10 // CHECK:   { A, 0x5 },
11 // CHECK:   { D, 0x8 },
12 // CHECK: };
14 class Instruction {
15   bit isPseudo = 0;
18 class MyInstr<int op> : Instruction {
19   Instruction Opcode = !cast<Instruction>(NAME);
20   bits<16> CustomEncoding = op;
23 def A : MyInstr<5>;
24 def D : MyInstr<8>;
25 let isPseudo = 1 in {
26   def C : MyInstr<0>;
27   def B : MyInstr<10>;
30 def InstrTable : GenericTable {
31   let FilterClass = "MyInstr";
32   let Fields = ["Opcode", "CustomEncoding"];
34   let PrimaryKey = ["Opcode"];
35   let PrimaryKeyName = "getCustomEncodingHelper";