mirror of
https://github.com/RPCS3/llvm.git
synced 2026-01-31 01:25:19 +01:00
Summary:
Returns the size of a list. I have found this to be rather useful in some
development for the AMDGPU backend where we could simplify our .td files
by concatenating list<LLVMType> for complex intrinsics. Doing so requires
us to compute the position argument for LLVMMatchType.
Basically, the usage is in a pattern that looks somewhat like this:
list<LLVMType> argtypes =
!listconcat(base,
[llvm_any_ty, LLVMMatchType<!size(base)>]);
Change-Id: I360a0b000fd488d18bea412228230fd93722bd2c
Reviewers: arsenm, craig.topper, tra, MartinO
Subscribers: wdng, llvm-commits, tpr
Differential Revision: https://reviews.llvm.org/D43553
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@325883 91177308-0d34-0410-b5e6-96231b3b80d8
35 lines
488 B
TableGen
35 lines
488 B
TableGen
// RUN: llvm-tblgen %s | FileCheck %s
|
|
// XFAIL: vg_leak
|
|
|
|
// CHECK: --- Defs ---
|
|
|
|
// CHECK: def A1 {
|
|
// CHECK: int Val = 0;
|
|
// CHECK: }
|
|
|
|
// CHECK: def A2 {
|
|
// CHECK: int Val = 3;
|
|
// CHECK: }
|
|
|
|
// CHECK: def B1 {
|
|
// CHECK: int Val = 0;
|
|
// CHECK: }
|
|
|
|
// CHECK: def B2 {
|
|
// CHECK: int Val = 2;
|
|
// CHECK: }
|
|
|
|
class A<list<int> L> {
|
|
int Val = !size(L);
|
|
}
|
|
|
|
class B<list<string> L> {
|
|
int Val = !size(L);
|
|
}
|
|
|
|
def A1 : A<[]>;
|
|
def A2 : A<[1, 1, 2]>;
|
|
|
|
def B1 : B<[]>;
|
|
def B2 : B<["a", "b"]>;
|