xref: /aosp_15_r20/external/llvm/test/TableGen/DefmInsideMultiClass.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: ADDPSrr
5*9880d681SAndroid Build Coastguard Worker// CHECK-NOT: ADDPSrr
6*9880d681SAndroid Build Coastguard Worker
7*9880d681SAndroid Build Coastguard Workerclass Instruction<bits<4> opc, string Name> {
8*9880d681SAndroid Build Coastguard Worker  bits<4> opcode = opc;
9*9880d681SAndroid Build Coastguard Worker  string name = Name;
10*9880d681SAndroid Build Coastguard Worker}
11*9880d681SAndroid Build Coastguard Worker
12*9880d681SAndroid Build Coastguard Workermulticlass basic_r<bits<4> opc> {
13*9880d681SAndroid Build Coastguard Worker  def rr : Instruction<opc, "rr">;
14*9880d681SAndroid Build Coastguard Worker  def rm : Instruction<opc, "rm">;
15*9880d681SAndroid Build Coastguard Worker}
16*9880d681SAndroid Build Coastguard Worker
17*9880d681SAndroid Build Coastguard Workermulticlass basic_s<bits<4> opc> {
18*9880d681SAndroid Build Coastguard Worker  defm SS : basic_r<opc>;
19*9880d681SAndroid Build Coastguard Worker  defm SD : basic_r<opc>;
20*9880d681SAndroid Build Coastguard Worker}
21*9880d681SAndroid Build Coastguard Worker
22*9880d681SAndroid Build Coastguard Workermulticlass basic_p<bits<4> opc> {
23*9880d681SAndroid Build Coastguard Worker  defm PS : basic_r<opc>;
24*9880d681SAndroid Build Coastguard Worker  defm PD : basic_r<opc>;
25*9880d681SAndroid Build Coastguard Worker}
26*9880d681SAndroid Build Coastguard Worker
27*9880d681SAndroid Build Coastguard Workerdefm ADD : basic_s<0xf>, basic_p<0xf>;
28*9880d681SAndroid Build Coastguard Workerdefm SUB : basic_s<0xe>, basic_p<0xe>;
29