return Legal;
case TargetLowering::Promote:
// Promote can mean
- // 1) On integers, it means to promote type (e.g., i8 to i32)
- // 2) For vectors, it means try to widen (e.g., v3i32 to v4i32)
- if (!VT.isVector()) {
+ // 1) For integers, use a larger integer type (e.g. i8 -> i32).
+ // 2) For vectors, use a wider vector type (e.g. v3i32 -> v4i32).
+ if (!VT.isVector())
return PromoteInteger;
- }
- else {
- // TODO: move widen code to LegalizeType
- if (VT.getVectorNumElements() == 1) {
- return ScalarizeVector;
- } else {
- return SplitVector;
- }
- }
+ else if (VT.getVectorNumElements() == 1)
+ return ScalarizeVector;
+ else
+ // TODO: move widen code to LegalizeTypes.
+ return SplitVector;
case TargetLowering::Expand:
// Expand can mean
// 1) split scalar in half, 2) convert a float to an integer,
SDValue ScalarizeVecRes_INSERT_VECTOR_ELT(SDNode *N);
SDValue ScalarizeVecRes_LOAD(LoadSDNode *N);
SDValue ScalarizeVecRes_SELECT(SDNode *N);
+ SDValue ScalarizeVecRes_SELECT_CC(SDNode *N);
SDValue ScalarizeVecRes_UNDEF(SDNode *N);
SDValue ScalarizeVecRes_VECTOR_SHUFFLE(SDNode *N);
SDValue ScalarizeVecRes_VSETCC(SDNode *N);