aboutsummaryrefslogtreecommitdiff
path: root/include/llvm/CodeGen/ValueTypes.h
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-03-01 00:55:26 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-03-01 00:55:26 +0000
commit70695ab62611cd92fda17e5effaf7796d54b8f86 (patch)
treed0a77da490f3ae4f658d455a7fc15e9c41623068 /include/llvm/CodeGen/ValueTypes.h
parent1ab7d859cf5c490612799d7e132c0b1c39f8f497 (diff)
- Added v2f32, not used by any target currently. Only for testing purpose.
- Minor bug fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26433 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/CodeGen/ValueTypes.h')
-rw-r--r--include/llvm/CodeGen/ValueTypes.h39
1 files changed, 27 insertions, 12 deletions
diff --git a/include/llvm/CodeGen/ValueTypes.h b/include/llvm/CodeGen/ValueTypes.h
index 370f5c3620..a252d095d2 100644
--- a/include/llvm/CodeGen/ValueTypes.h
+++ b/include/llvm/CodeGen/ValueTypes.h
@@ -56,20 +56,21 @@ namespace MVT { // MVT = Machine Value Types
v4i32 = 19, // 4 x i32
v2i64 = 20, // 2 x i64
- v4f32 = 21, // 4 x f32
- v2f64 = 22, // 2 x f64
+ v2f32 = 21, // 2 x f32
+ v4f32 = 22, // 4 x f32
+ v2f64 = 23, // 2 x f64
LAST_VALUETYPE // This always remains at the end of the list.
};
static inline bool isInteger(ValueType VT) {
- return (VT >= i1 && VT <= i128) || (VT >= v16i8 && VT <= v2i64);
+ return (VT >= i1 && VT <= i128) || (VT >= v8i8 && VT <= v2i64);
}
static inline bool isFloatingPoint(ValueType VT) {
return (VT >= f32 && VT <= f128) || (VT >= v4f32 && VT <= v2f64);
}
static inline bool isVector(ValueType VT) {
- return (VT >= v16i8 && VT <= v2f64);
+ return (VT >= v8i8 && VT <= v2f64);
}
/// getVectorType - Returns the ValueType that represents a vector NumElements
@@ -80,11 +81,24 @@ namespace MVT { // MVT = Machine Value Types
switch (VT) {
default:
break;
+ case MVT::i8:
+ if (NumElements == 8) return MVT::v8i8;
+ if (NumElements == 16) return MVT::v16i8;
+ break;
+ case MVT::i16:
+ if (NumElements == 4) return MVT::v4i16;
+ if (NumElements == 8) return MVT::v8i16;
+ break;
case MVT::i32:
- if (NumElements == 4) return MVT::v4i32;
+ if (NumElements == 2) return MVT::v2i32;
+ if (NumElements == 4) return MVT::v4i32;
break;
case MVT::f32:
- if (NumElements == 4) return MVT::v4f32;
+ if (NumElements == 2) return MVT::v2f32;
+ if (NumElements == 4) return MVT::v4f32;
+ break;
+ case MVT::f64:
+ if (NumElements == 2) return MVT::v2f64;
break;
}
return MVT::Other;
@@ -93,17 +107,18 @@ namespace MVT { // MVT = Machine Value Types
static inline unsigned getSizeInBits(ValueType VT) {
switch (VT) {
default: assert(0 && "ValueType has no known size!");
- case MVT::i1 : return 1;
- case MVT::i8 : return 8;
- case MVT::i16 : return 16;
+ case MVT::i1 : return 1;
+ case MVT::i8 : return 8;
+ case MVT::i16 : return 16;
case MVT::f32 :
- case MVT::i32 : return 32;
+ case MVT::i32 : return 32;
case MVT::f64 :
case MVT::i64 :
case MVT::v8i8:
case MVT::v4i16:
- case MVT::v2i32:return 64;
- case MVT::f80 : return 80;
+ case MVT::v2i32:
+ case MVT::v2f32: return 64;
+ case MVT::f80 : return 80;
case MVT::f128:
case MVT::i128:
case MVT::v16i8: