mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-24 03:33:20 +01:00
[AVX] Add TableGen classes for vector/subvector type constraints.
This will be used to check patterns referencing a forthcoming INSERT_SUBVECTOR SDNode and will also be used to check EXTRACT_SUBVECTOR nodes. llvm-svn: 124191
This commit is contained in:
parent
017a3d76f7
commit
b90e7ec2dc
@ -61,6 +61,13 @@ class SDTCisEltOfVec<int ThisOp, int OtherOp>
|
||||
int OtherOpNum = OtherOp;
|
||||
}
|
||||
|
||||
/// SDTCisSubVecOfVec - This indicates that ThisOp is a vector type
|
||||
/// with length less that of OtherOp, which is a vector type.
|
||||
class SDTCisSubVecOfVec<int ThisOp, int OtherOp>
|
||||
: SDTypeConstraint<ThisOp> {
|
||||
int OtherOpNum = OtherOp;
|
||||
}
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
// Selection DAG Type Profile definitions.
|
||||
//
|
||||
@ -183,6 +190,13 @@ def SDTVecInsert : SDTypeProfile<1, 3, [ // vector insert
|
||||
SDTCisEltOfVec<2, 1>, SDTCisSameAs<0, 1>, SDTCisPtrTy<3>
|
||||
]>;
|
||||
|
||||
def SDTSubVecExtract : SDTypeProfile<1, 1, [// subvector extract
|
||||
SDTCisSubVecOfVec<0,1>
|
||||
]>;
|
||||
def SDTSubVecInsert : SDTypeProfile<1, 2, [ // subvector insert
|
||||
SDTCisSubVecOfVec<2, 1>, SDTCisSameAs<0,1>
|
||||
]>;
|
||||
|
||||
def SDTPrefetch : SDTypeProfile<0, 3, [ // prefetch
|
||||
SDTCisPtrTy<0>, SDTCisSameAs<1, 2>, SDTCisInt<1>
|
||||
]>;
|
||||
|
Loading…
Reference in New Issue
Block a user