diff options
author | David Greene <greened@obbligato.org> | 2009-05-05 16:28:25 +0000 |
---|---|---|
committer | David Greene <greened@obbligato.org> | 2009-05-05 16:28:25 +0000 |
commit | 065f259ff5e9e3dcd0da4db3ccd29775c789669d (patch) | |
tree | cd71009f55b420d51258cbc53a2dcd5f82f28181 /test/TableGen | |
parent | f8681568201ee3808c154a4de09888d85c76a446 (diff) | |
download | external_llvm-065f259ff5e9e3dcd0da4db3ccd29775c789669d.zip external_llvm-065f259ff5e9e3dcd0da4db3ccd29775c789669d.tar.gz external_llvm-065f259ff5e9e3dcd0da4db3ccd29775c789669d.tar.bz2 |
Allow multiclass def names to contain "#NAME"" where TableGen replaces
#NAME# with the name of the defm instantiating the multiclass. This is
useful for AVX instruction naming where a "V" prefix is standard
throughout the ISA. For example:
multiclass SSE_AVX_Inst<...> {
def SS : Instr<...>;
def SD : Instr<...>;
def PS : Instr<...>;
def PD : Instr<...>;
def V#NAME#SS : Instr<...>;
def V#NAME#SD : Instr<...>;
def V#NAME#PS : Instr<...>;
def V#NAME#PD : Instr<...>;
}
defm ADD : SSE_AVX_Inst<...>;
Results in
ADDSS
ADDSD
ADDPS
ADDPD
VADDSS
VADDSD
VADDPS
VADDPD
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70979 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/TableGen')
-rw-r--r-- | test/TableGen/MultiClassDefName.td | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/TableGen/MultiClassDefName.td b/test/TableGen/MultiClassDefName.td new file mode 100644 index 0000000..2e71f7d --- /dev/null +++ b/test/TableGen/MultiClassDefName.td @@ -0,0 +1,12 @@ +// RUN: tblgen %s | grep WorldHelloCC | count 1 + +class C<string n> { + string name = n; +} + +multiclass Names<string n, string m> { + def CC : C<n>; + def World#NAME#CC : C<m>; +} + +defm Hello : Names<"hello", "world">; |