FIRST_VECTOR_VALUETYPE = v8i8,
LAST_VECTOR_VALUETYPE = v2f64,
- LAST_VALUETYPE = 24 // This always remains at the end of the list.
+ LAST_VALUETYPE = 24, // This always remains at the end of the list.
+
+ // iPTR - An int value the size of the pointer of the current
+ // target. This should only be used internal to tblgen!
+ iPTR = 255
};
/// MVT::isInteger - Return true if this is a simple integer, or a packed
if (NumElements == 2) return MVT::v2i32;
if (NumElements == 4) return MVT::v4i32;
break;
+ case MVT::i64:
+ if (NumElements == 2) return MVT::v2i64;
+ break;
case MVT::f32:
if (NumElements == 2) return MVT::v2f32;
if (NumElements == 4) return MVT::v4f32;
}
}
+ /// MVT::getIntVectorWithNumElements - Return any integer vector type that has
+ /// the specified number of elements.
+ static inline ValueType getIntVectorWithNumElements(unsigned NumElts) {
+ switch (NumElts) {
+ default: assert(0 && "Invalid vector type!");
+ case 2: return v2i32;
+ case 4: return v4i16;
+ case 8: return v8i8;
+ case 16: return v16i8;
+ }
+ }
+
+
/// MVT::getIntVTBitMask - Return an integer with 1's every place there are
/// bits in the specified integer value type.
static inline uint64_t getIntVTBitMask(ValueType VT) {
assert(isInteger(VT) && !isVector(VT) && "Only applies to int scalars!");
- return ~0ULL >> (64-getSizeInBits(VT));
+ return ~uint64_t(0UL) >> (64-getSizeInBits(VT));
}
/// MVT::getIntVTSignBit - Return an integer with a 1 in the position of the
/// sign bit for the specified integer value type.
static inline uint64_t getIntVTSignBit(ValueType VT) {
assert(isInteger(VT) && !isVector(VT) && "Only applies to int scalars!");
- return 1ULL << (getSizeInBits(VT)-1);
+ return uint64_t(1UL) << (getSizeInBits(VT)-1);
}
/// MVT::getValueTypeString - This function returns value type as a string,