Home | History | Annotate | Download | only in TableGen
      1 // RUN: llvm-tblgen %s | FileCheck %s
      2 // XFAIL: vg_leak
      3 
      4 // CHECK: bit IsDouble = 1;
      5 // CHECK: bit IsDouble = 1;
      6 // CHECK: bit IsDouble = 1;
      7 // CHECK-NOT: bit IsDouble = 1;
      8 
      9 class Instruction<bits<4> opc, string Name> {
     10   bits<4> opcode = opc;
     11   string name = Name;
     12   bit IsDouble = 0;
     13 }
     14 
     15 multiclass basic_r<bits<4> opc> {
     16   let name = "newname" in {
     17     def rr : Instruction<opc, "rr">;
     18     def rm : Instruction<opc, "rm">;
     19   }
     20 
     21   let name = "othername" in
     22     def rx : Instruction<opc, "rx">;
     23 }
     24 
     25 multiclass basic_ss<bits<4> opc> {
     26   let IsDouble = 0 in
     27     defm SS : basic_r<opc>;
     28 
     29   let IsDouble = 1 in
     30     defm SD : basic_r<opc>;
     31 }
     32 
     33 defm ADD : basic_ss<0xf>;
     34 
     35