> Generalize MVT::ValueType and associated functions to be able to > represent > extended vector types.
Whoa, I'm surprised to see this so soon! > @@ -45,10 +46,6 @@ > > isVoid = 12, // This has no value > > - Vector = 13, // This is an abstract vector type, > which will > - // be expanded into a target vector > type, or scalars > - // if no matching vector type is > available. > - > v8i8 = 14, // 8 x i8 > v4i16 = 15, // 4 x i16 > v2i32 = 16, // 2 x i32 Should the value of these all slide up to avoid the hole at "13"? > @@ -76,64 +73,55 @@ > iPTR = 255 is 255 a good sentinel for iPTR anymore? Would we gain anything by making SimpleTypeBits less than 8? > + /// MVT::ValueType - This type holds low-level value types. > Valid values > + /// include any of the values in the SimpleValueType enum, or > any value > + /// returned from a function in the MVT namespace that has a > ValueType > + /// return type. Any value type equal to one of the > SimpleValueType enum > + /// values is a "simple" value type. All other value types are > "extended". > + /// > + /// Note that simple doesn't necessary mean legal for the target > machine. > + /// All legal value types must be simple, but often there are > some simple > + /// value types that are not legal. > + typedef uint32_t ValueType; This would be a great place to talk about what non-simple value types currently exist, and how they are encoded. > + /// MVT::isExtendedValueType - Test if the given ValueType is > extended > + /// (as opposed to being simple). > + static inline bool isExtendedValueType(ValueType VT) { > + return VT & ~SimpleTypeMask; > } I notice that several places use !MVT::isExtendedValueType(VT). Please add MVT::isSimpleValueType() Would it make sense to shrinkify these to MVT::isExtendedVT() and MVT::isSimpleVT()? ValueType and the namespace are somewhat redundant with each other. -Chris _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits