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 | 44f9d7a8f01cd5943095a2312c27bfe7ea3c682e (patch) | |
| tree | 0c34a2d4684b580804078b134ec20737cf3595ab /llvm/test/TableGen/MultiClassDefName.td | |
| parent | d953cd94018917180919bdf702c31ca6e94c2391 (diff) | |
| download | bcm5719-llvm-44f9d7a8f01cd5943095a2312c27bfe7ea3c682e.tar.gz bcm5719-llvm-44f9d7a8f01cd5943095a2312c27bfe7ea3c682e.zip | |
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
llvm-svn: 70979
Diffstat (limited to 'llvm/test/TableGen/MultiClassDefName.td')
| -rw-r--r-- | llvm/test/TableGen/MultiClassDefName.td | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/llvm/test/TableGen/MultiClassDefName.td b/llvm/test/TableGen/MultiClassDefName.td new file mode 100644 index 00000000000..2e71f7d0616 --- /dev/null +++ b/llvm/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">; |

