mirror of
https://github.com/intel/llvm.git
synced 2026-01-22 23:49:22 +08:00
[TargetLowering] isVectorClearMaskLegal - use ArrayRef<int> instead of const SmallVectorImpl<int>&
This is more generic and matches isShuffleMaskLegal. Differential Revision: https://reviews.llvm.org/D48591 llvm-svn: 335605
This commit is contained in:
@@ -748,10 +748,10 @@ public:
|
||||
/// operations don't trap except for integer divide and remainder.
|
||||
virtual bool canOpTrap(unsigned Op, EVT VT) const;
|
||||
|
||||
/// Similar to isShuffleMaskLegal. This is used by Targets can use this to
|
||||
/// indicate if there is a suitable VECTOR_SHUFFLE that can be used to replace
|
||||
/// a VAND with a constant pool entry.
|
||||
virtual bool isVectorClearMaskLegal(const SmallVectorImpl<int> &/*Mask*/,
|
||||
/// Similar to isShuffleMaskLegal. Targets can use this to indicate if there
|
||||
/// is a suitable VECTOR_SHUFFLE that can be used to replace a VAND with a
|
||||
/// constant pool entry.
|
||||
virtual bool isVectorClearMaskLegal(ArrayRef<int> /*Mask*/,
|
||||
EVT /*VT*/) const {
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -26331,9 +26331,8 @@ bool X86TargetLowering::isShuffleMaskLegal(ArrayRef<int> M, EVT VT) const {
|
||||
return isTypeLegal(VT.getSimpleVT());
|
||||
}
|
||||
|
||||
bool
|
||||
X86TargetLowering::isVectorClearMaskLegal(const SmallVectorImpl<int> &Mask,
|
||||
EVT VT) const {
|
||||
bool X86TargetLowering::isVectorClearMaskLegal(ArrayRef<int> Mask,
|
||||
EVT VT) const {
|
||||
// Don't convert an 'and' into a shuffle that we don't directly support.
|
||||
// vpblendw and vpshufb for 256-bit vectors are not available on AVX1.
|
||||
if (!Subtarget.hasAVX2())
|
||||
|
||||
@@ -993,11 +993,10 @@ namespace llvm {
|
||||
/// be legal.
|
||||
bool isShuffleMaskLegal(ArrayRef<int> Mask, EVT VT) const override;
|
||||
|
||||
/// Similar to isShuffleMaskLegal. This is used by Targets can use this to
|
||||
/// indicate if there is a suitable VECTOR_SHUFFLE that can be used to
|
||||
/// replace a VAND with a constant pool entry.
|
||||
bool isVectorClearMaskLegal(const SmallVectorImpl<int> &Mask,
|
||||
EVT VT) const override;
|
||||
/// Similar to isShuffleMaskLegal. Targets can use this to indicate if there
|
||||
/// is a suitable VECTOR_SHUFFLE that can be used to replace a VAND with a
|
||||
/// constant pool entry.
|
||||
bool isVectorClearMaskLegal(ArrayRef<int> Mask, EVT VT) const override;
|
||||
|
||||
/// Returns true if lowering to a jump table is allowed.
|
||||
bool areJTsAllowed(const Function *Fn) const override;
|
||||
|
||||
Reference in New Issue
Block a user