parent
ccd08fc8c4
commit
9bedcdb5f5
|
@ -66,24 +66,24 @@ struct SDVTList {
|
|||
namespace ISD {
|
||||
/// Node predicates
|
||||
|
||||
/// Return true if the specified node is a
|
||||
/// BUILD_VECTOR where all of the elements are ~0 or undef.
|
||||
/// Return true if the specified node is a BUILD_VECTOR where all of the
|
||||
/// elements are ~0 or undef.
|
||||
bool isBuildVectorAllOnes(const SDNode *N);
|
||||
|
||||
/// Return true if the specified node is a
|
||||
/// BUILD_VECTOR where all of the elements are 0 or undef.
|
||||
/// Return true if the specified node is a BUILD_VECTOR where all of the
|
||||
/// elements are 0 or undef.
|
||||
bool isBuildVectorAllZeros(const SDNode *N);
|
||||
|
||||
/// \brief Return true if the specified node is a BUILD_VECTOR node of
|
||||
/// all ConstantSDNode or undef.
|
||||
/// Return true if the specified node is a BUILD_VECTOR node of all
|
||||
/// ConstantSDNode or undef.
|
||||
bool isBuildVectorOfConstantSDNodes(const SDNode *N);
|
||||
|
||||
/// \brief Return true if the specified node is a BUILD_VECTOR node of
|
||||
/// all ConstantFPSDNode or undef.
|
||||
/// Return true if the specified node is a BUILD_VECTOR node of all
|
||||
/// ConstantFPSDNode or undef.
|
||||
bool isBuildVectorOfConstantFPSDNodes(const SDNode *N);
|
||||
|
||||
/// Return true if the node has at least one operand
|
||||
/// and all operands of the specified node are ISD::UNDEF.
|
||||
/// Return true if the node has at least one operand and all operands of the
|
||||
/// specified node are ISD::UNDEF.
|
||||
bool allOperandsUndef(const SDNode *N);
|
||||
} // end llvm:ISD namespace
|
||||
|
||||
|
|
|
@ -93,8 +93,9 @@ bool ConstantFPSDNode::isValueValidForType(EVT VT,
|
|||
// ISD Namespace
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
||||
/// isBuildVectorAllOnes - Return true if the specified node is a
|
||||
/// BUILD_VECTOR where all of the elements are ~0 or undef.
|
||||
// FIXME: AllOnes and AllZeros duplicate a lot of code. Could these be
|
||||
// specializations of the more general isConstantSplatVector()?
|
||||
|
||||
bool ISD::isBuildVectorAllOnes(const SDNode *N) {
|
||||
// Look through a bit convert.
|
||||
while (N->getOpcode() == ISD::BITCAST)
|
||||
|
@ -139,9 +140,6 @@ bool ISD::isBuildVectorAllOnes(const SDNode *N) {
|
|||
return true;
|
||||
}
|
||||
|
||||
|
||||
/// isBuildVectorAllZeros - Return true if the specified node is a
|
||||
/// BUILD_VECTOR where all of the elements are 0 or undef.
|
||||
bool ISD::isBuildVectorAllZeros(const SDNode *N) {
|
||||
// Look through a bit convert.
|
||||
while (N->getOpcode() == ISD::BITCAST)
|
||||
|
@ -179,8 +177,6 @@ bool ISD::isBuildVectorAllZeros(const SDNode *N) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/// \brief Return true if the specified node is a BUILD_VECTOR node of
|
||||
/// all ConstantSDNode or undef.
|
||||
bool ISD::isBuildVectorOfConstantSDNodes(const SDNode *N) {
|
||||
if (N->getOpcode() != ISD::BUILD_VECTOR)
|
||||
return false;
|
||||
|
@ -194,8 +190,6 @@ bool ISD::isBuildVectorOfConstantSDNodes(const SDNode *N) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/// \brief Return true if the specified node is a BUILD_VECTOR node of
|
||||
/// all ConstantFPSDNode or undef.
|
||||
bool ISD::isBuildVectorOfConstantFPSDNodes(const SDNode *N) {
|
||||
if (N->getOpcode() != ISD::BUILD_VECTOR)
|
||||
return false;
|
||||
|
@ -209,8 +203,6 @@ bool ISD::isBuildVectorOfConstantFPSDNodes(const SDNode *N) {
|
|||
return true;
|
||||
}
|
||||
|
||||
/// allOperandsUndef - Return true if the node has at least one operand
|
||||
/// and all operands of the specified node are ISD::UNDEF.
|
||||
bool ISD::allOperandsUndef(const SDNode *N) {
|
||||
// Return false if the node has no operands.
|
||||
// This is "logically inconsistent" with the definition of "all" but
|
||||
|
|
Loading…
Reference in New Issue