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 9class Instruction<bits<4> opc, string Name> { 10 bits<4> opcode = opc; 11 string name = Name; 12 bit IsDouble = 0; 13} 14 15multiclass 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 25multiclass 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 33defm ADD : basic_ss<0xf>; 34 35