[llvm-commits] [llvm] r40793 - in /llvm/trunk: include/llvm/CodeGen/ValueTypes.h include/llvm/CodeGen/ValueTypes.td lib/VMCore/ValueTypes.cpp
Dale Johannesen
dalej at apple.com
Fri Aug 3 13:51:39 PDT 2007
Author: johannes
Date: Fri Aug 3 15:51:37 2007
New Revision: 40793
URL: http://llvm.org/viewvc/llvm-project?rev=40793&view=rev
Log:
long double patch 3 of N. Add to MVT.
Modified:
llvm/trunk/include/llvm/CodeGen/ValueTypes.h
llvm/trunk/include/llvm/CodeGen/ValueTypes.td
llvm/trunk/lib/VMCore/ValueTypes.cpp
Modified: llvm/trunk/include/llvm/CodeGen/ValueTypes.h
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/ValueTypes.h?rev=40793&r1=40792&r2=40793&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/ValueTypes.h (original)
+++ llvm/trunk/include/llvm/CodeGen/ValueTypes.h Fri Aug 3 15:51:37 2007
@@ -42,29 +42,30 @@
f64 = 8, // This is a 64 bit floating point value
f80 = 9, // This is a 80 bit floating point value
f128 = 10, // This is a 128 bit floating point value
- Flag = 11, // This is a condition code or machine flag.
+ ppcf128 = 11, // This is a PPC 128-bit floating point value
+ Flag = 12, // This is a condition code or machine flag.
- isVoid = 12, // This has no value
+ isVoid = 13, // This has no value
- v8i8 = 13, // 8 x i8
- v4i16 = 14, // 4 x i16
- v2i32 = 15, // 2 x i32
- v1i64 = 16, // 1 x i64
- v16i8 = 17, // 16 x i8
- v8i16 = 18, // 8 x i16
- v3i32 = 19, // 3 x i32
- v4i32 = 20, // 4 x i32
- v2i64 = 21, // 2 x i64
-
- v2f32 = 22, // 2 x f32
- v3f32 = 23, // 3 x f32
- v4f32 = 24, // 4 x f32
- v2f64 = 25, // 2 x f64
+ v8i8 = 14, // 8 x i8
+ v4i16 = 15, // 4 x i16
+ v2i32 = 16, // 2 x i32
+ v1i64 = 17, // 1 x i64
+ v16i8 = 18, // 16 x i8
+ v8i16 = 19, // 8 x i16
+ v3i32 = 20, // 3 x i32
+ v4i32 = 21, // 4 x i32
+ v2i64 = 22, // 2 x i64
+
+ v2f32 = 23, // 2 x f32
+ v3f32 = 24, // 3 x f32
+ v4f32 = 25, // 4 x f32
+ v2f64 = 26, // 2 x f64
FIRST_VECTOR_VALUETYPE = v8i8,
LAST_VECTOR_VALUETYPE = v2f64,
- LAST_VALUETYPE = 26, // This always remains at the end of the list.
+ LAST_VALUETYPE = 27, // This always remains at the end of the list.
// iAny - An integer value of any bit width. This is used for intrinsics
// that have overloadings based on integer bit widths. This is only for
@@ -114,7 +115,7 @@
/// MVT::isFloatingPoint - Return true if this is an FP, or a vector FP type.
static inline bool isFloatingPoint(ValueType VT) {
ValueType SVT = VT & SimpleTypeMask;
- return (SVT >= f32 && SVT <= f128) || (SVT >= v2f32 && SVT <= v2f64);
+ return (SVT >= f32 && SVT <= ppcf128) || (SVT >= v2f32 && SVT <= v2f64);
}
/// MVT::isVector - Return true if this is a vector value type.
@@ -197,6 +198,7 @@
case MVT::v3i32:
case MVT::v3f32: return 96;
case MVT::f128:
+ case MVT::ppcf128:
case MVT::i128:
case MVT::v16i8:
case MVT::v8i16:
Modified: llvm/trunk/include/llvm/CodeGen/ValueTypes.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/ValueTypes.td?rev=40793&r1=40792&r2=40793&view=diff
==============================================================================
--- llvm/trunk/include/llvm/CodeGen/ValueTypes.td (original)
+++ llvm/trunk/include/llvm/CodeGen/ValueTypes.td Fri Aug 3 15:51:37 2007
@@ -30,23 +30,24 @@
def f64 : ValueType<64 , 8>; // 64-bit floating point value
def f80 : ValueType<80 , 9>; // 80-bit floating point value
def f128 : ValueType<128, 10>; // 128-bit floating point value
-def FlagVT : ValueType<0 , 11>; // Condition code or machine flag
-def isVoid : ValueType<0 , 12>; // Produces no value
-def v8i8 : ValueType<64 , 13>; // 8 x i8 vector value
-def v4i16 : ValueType<64 , 14>; // 4 x i16 vector value
-def v2i32 : ValueType<64 , 15>; // 2 x i32 vector value
-def v1i64 : ValueType<64 , 16>; // 1 x i64 vector value
+def ppcf128: ValueType<128, 11>; // PPC 128-bit floating point value
+def FlagVT : ValueType<0 , 12>; // Condition code or machine flag
+def isVoid : ValueType<0 , 13>; // Produces no value
+def v8i8 : ValueType<64 , 14>; // 8 x i8 vector value
+def v4i16 : ValueType<64 , 15>; // 4 x i16 vector value
+def v2i32 : ValueType<64 , 16>; // 2 x i32 vector value
+def v1i64 : ValueType<64 , 17>; // 1 x i64 vector value
-def v16i8 : ValueType<128, 17>; // 16 x i8 vector value
-def v8i16 : ValueType<128, 18>; // 8 x i16 vector value
-def v3i32 : ValueType<96 , 19>; // 3 x i32 vector value
-def v4i32 : ValueType<128, 20>; // 4 x i32 vector value
-def v2i64 : ValueType<128, 21>; // 2 x i64 vector value
+def v16i8 : ValueType<128, 18>; // 16 x i8 vector value
+def v8i16 : ValueType<128, 19>; // 8 x i16 vector value
+def v3i32 : ValueType<96 , 20>; // 3 x i32 vector value
+def v4i32 : ValueType<128, 21>; // 4 x i32 vector value
+def v2i64 : ValueType<128, 22>; // 2 x i64 vector value
-def v2f32 : ValueType<64, 22>; // 2 x f32 vector value
-def v3f32 : ValueType<96 , 23>; // 3 x f32 vector value
-def v4f32 : ValueType<128, 24>; // 4 x f32 vector value
-def v2f64 : ValueType<128, 25>; // 2 x f64 vector value
+def v2f32 : ValueType<64, 23>; // 2 x f32 vector value
+def v3f32 : ValueType<96 , 24>; // 3 x f32 vector value
+def v4f32 : ValueType<128, 25>; // 4 x f32 vector value
+def v2f64 : ValueType<128, 26>; // 2 x f64 vector value
// Pseudo valuetype to represent "integer of any bit width"
def iAny : ValueType<0 , 254>; // integer value of any bit width
Modified: llvm/trunk/lib/VMCore/ValueTypes.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/VMCore/ValueTypes.cpp?rev=40793&r1=40792&r2=40793&view=diff
==============================================================================
--- llvm/trunk/lib/VMCore/ValueTypes.cpp (original)
+++ llvm/trunk/lib/VMCore/ValueTypes.cpp Fri Aug 3 15:51:37 2007
@@ -26,32 +26,33 @@
return "v" + utostr(getVectorNumElements(VT)) +
getValueTypeString(getVectorElementType(VT));
assert(0 && "Invalid ValueType!");
- case MVT::i1: return "i1";
- case MVT::i8: return "i8";
- case MVT::i16: return "i16";
- case MVT::i32: return "i32";
- case MVT::i64: return "i64";
- case MVT::i128: return "i128";
- case MVT::f32: return "f32";
- case MVT::f64: return "f64";
- case MVT::f80: return "f80";
- case MVT::f128: return "f128";
- case MVT::isVoid:return "isVoid";
- case MVT::Other: return "ch";
- case MVT::Flag: return "flag";
- case MVT::v8i8: return "v8i8";
- case MVT::v4i16: return "v4i16";
- case MVT::v2i32: return "v2i32";
- case MVT::v1i64: return "v1i64";
- case MVT::v16i8: return "v16i8";
- case MVT::v8i16: return "v8i16";
- case MVT::v4i32: return "v4i32";
- case MVT::v2i64: return "v2i64";
- case MVT::v2f32: return "v2f32";
- case MVT::v4f32: return "v4f32";
- case MVT::v2f64: return "v2f64";
- case MVT::v3i32: return "v3i32";
- case MVT::v3f32: return "v3f32";
+ case MVT::i1: return "i1";
+ case MVT::i8: return "i8";
+ case MVT::i16: return "i16";
+ case MVT::i32: return "i32";
+ case MVT::i64: return "i64";
+ case MVT::i128: return "i128";
+ case MVT::f32: return "f32";
+ case MVT::f64: return "f64";
+ case MVT::f80: return "f80";
+ case MVT::f128: return "f128";
+ case MVT::ppcf128: return "ppcf128";
+ case MVT::isVoid: return "isVoid";
+ case MVT::Other: return "ch";
+ case MVT::Flag: return "flag";
+ case MVT::v8i8: return "v8i8";
+ case MVT::v4i16: return "v4i16";
+ case MVT::v2i32: return "v2i32";
+ case MVT::v1i64: return "v1i64";
+ case MVT::v16i8: return "v16i8";
+ case MVT::v8i16: return "v8i16";
+ case MVT::v4i32: return "v4i32";
+ case MVT::v2i64: return "v2i64";
+ case MVT::v2f32: return "v2f32";
+ case MVT::v4f32: return "v4f32";
+ case MVT::v2f64: return "v2f64";
+ case MVT::v3i32: return "v3i32";
+ case MVT::v3f32: return "v3f32";
}
}
@@ -66,27 +67,30 @@
getVectorNumElements(VT));
assert(0 && "ValueType does not correspond to LLVM type!");
case MVT::isVoid:return Type::VoidTy;
- case MVT::i1: return Type::Int1Ty;
- case MVT::i8: return Type::Int8Ty;
- case MVT::i16: return Type::Int16Ty;
- case MVT::i32: return Type::Int32Ty;
- case MVT::i64: return Type::Int64Ty;
- case MVT::i128: return IntegerType::get(128);
- case MVT::f32: return Type::FloatTy;
- case MVT::f64: return Type::DoubleTy;
- case MVT::v8i8: return VectorType::get(Type::Int8Ty, 8);
- case MVT::v4i16: return VectorType::get(Type::Int16Ty, 4);
- case MVT::v2i32: return VectorType::get(Type::Int32Ty, 2);
- case MVT::v1i64: return VectorType::get(Type::Int64Ty, 1);
- case MVT::v16i8: return VectorType::get(Type::Int8Ty, 16);
- case MVT::v8i16: return VectorType::get(Type::Int16Ty, 8);
- case MVT::v4i32: return VectorType::get(Type::Int32Ty, 4);
- case MVT::v2i64: return VectorType::get(Type::Int64Ty, 2);
- case MVT::v2f32: return VectorType::get(Type::FloatTy, 2);
- case MVT::v4f32: return VectorType::get(Type::FloatTy, 4);
- case MVT::v2f64: return VectorType::get(Type::DoubleTy, 2);
- case MVT::v3i32: return VectorType::get(Type::Int32Ty, 3);
- case MVT::v3f32: return VectorType::get(Type::FloatTy, 3);
+ case MVT::i1: return Type::Int1Ty;
+ case MVT::i8: return Type::Int8Ty;
+ case MVT::i16: return Type::Int16Ty;
+ case MVT::i32: return Type::Int32Ty;
+ case MVT::i64: return Type::Int64Ty;
+ case MVT::i128: return IntegerType::get(128);
+ case MVT::f32: return Type::FloatTy;
+ case MVT::f64: return Type::DoubleTy;
+ case MVT::f80: return Type::X86_FP80Ty;
+ case MVT::f128: return Type::FP128Ty;
+ case MVT::ppcf128: return Type::PPC_FP128Ty;
+ case MVT::v8i8: return VectorType::get(Type::Int8Ty, 8);
+ case MVT::v4i16: return VectorType::get(Type::Int16Ty, 4);
+ case MVT::v2i32: return VectorType::get(Type::Int32Ty, 2);
+ case MVT::v1i64: return VectorType::get(Type::Int64Ty, 1);
+ case MVT::v16i8: return VectorType::get(Type::Int8Ty, 16);
+ case MVT::v8i16: return VectorType::get(Type::Int16Ty, 8);
+ case MVT::v4i32: return VectorType::get(Type::Int32Ty, 4);
+ case MVT::v2i64: return VectorType::get(Type::Int64Ty, 2);
+ case MVT::v2f32: return VectorType::get(Type::FloatTy, 2);
+ case MVT::v4f32: return VectorType::get(Type::FloatTy, 4);
+ case MVT::v2f64: return VectorType::get(Type::DoubleTy, 2);
+ case MVT::v3i32: return VectorType::get(Type::Int32Ty, 3);
+ case MVT::v3f32: return VectorType::get(Type::FloatTy, 3);
}
}
@@ -114,9 +118,12 @@
case 128: return MVT::i128;
}
break;
- case Type::FloatTyID: return MVT::f32;
- case Type::DoubleTyID: return MVT::f64;
- case Type::PointerTyID: return MVT::iPTR;
+ case Type::FloatTyID: return MVT::f32;
+ case Type::DoubleTyID: return MVT::f64;
+ case Type::X86_FP80TyID: return MVT::f80;
+ case Type::FP128TyID: return MVT::f128;
+ case Type::PPC_FP128TyID: return MVT::ppcf128;
+ case Type::PointerTyID: return MVT::iPTR;
case Type::VectorTyID: {
const VectorType *VTy = cast<VectorType>(Ty);
return getVectorType(getValueType(VTy->getElementType(), false),
More information about the llvm-commits
mailing list