xref: /aosp_15_r20/external/llvm/test/TableGen/LetInsideMultiClasses.td (revision 9880d6810fe72a1726cb53787c6711e909410d58)
1*9880d681SAndroid Build Coastguard Worker// RUN: llvm-tblgen %s | FileCheck %s
2*9880d681SAndroid Build Coastguard Worker// XFAIL: vg_leak
3*9880d681SAndroid Build Coastguard Worker
4*9880d681SAndroid Build Coastguard Worker// CHECK: bit IsDouble = 1;
5*9880d681SAndroid Build Coastguard Worker// CHECK: bit IsDouble = 1;
6*9880d681SAndroid Build Coastguard Worker// CHECK: bit IsDouble = 1;
7*9880d681SAndroid Build Coastguard Worker// CHECK-NOT: bit IsDouble = 1;
8*9880d681SAndroid Build Coastguard Worker
9*9880d681SAndroid Build Coastguard Workerclass Instruction<bits<4> opc, string Name> {
10*9880d681SAndroid Build Coastguard Worker  bits<4> opcode = opc;
11*9880d681SAndroid Build Coastguard Worker  string name = Name;
12*9880d681SAndroid Build Coastguard Worker  bit IsDouble = 0;
13*9880d681SAndroid Build Coastguard Worker}
14*9880d681SAndroid Build Coastguard Worker
15*9880d681SAndroid Build Coastguard Workermulticlass basic_r<bits<4> opc> {
16*9880d681SAndroid Build Coastguard Worker  let name = "newname" in {
17*9880d681SAndroid Build Coastguard Worker    def rr : Instruction<opc, "rr">;
18*9880d681SAndroid Build Coastguard Worker    def rm : Instruction<opc, "rm">;
19*9880d681SAndroid Build Coastguard Worker  }
20*9880d681SAndroid Build Coastguard Worker
21*9880d681SAndroid Build Coastguard Worker  let name = "othername" in
22*9880d681SAndroid Build Coastguard Worker    def rx : Instruction<opc, "rx">;
23*9880d681SAndroid Build Coastguard Worker}
24*9880d681SAndroid Build Coastguard Worker
25*9880d681SAndroid Build Coastguard Workermulticlass basic_ss<bits<4> opc> {
26*9880d681SAndroid Build Coastguard Worker  let IsDouble = 0 in
27*9880d681SAndroid Build Coastguard Worker    defm SS : basic_r<opc>;
28*9880d681SAndroid Build Coastguard Worker
29*9880d681SAndroid Build Coastguard Worker  let IsDouble = 1 in
30*9880d681SAndroid Build Coastguard Worker    defm SD : basic_r<opc>;
31*9880d681SAndroid Build Coastguard Worker}
32*9880d681SAndroid Build Coastguard Worker
33*9880d681SAndroid Build Coastguard Workerdefm ADD : basic_ss<0xf>;
34*9880d681SAndroid Build Coastguard Worker
35