[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