Force packed vectors to be a power of two in length.
authorChris Lattner <sabre@nondot.org>
Thu, 10 Nov 2005 01:40:59 +0000 (01:40 +0000)
committerChris Lattner <sabre@nondot.org>
Thu, 10 Nov 2005 01:40:59 +0000 (01:40 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24264 91177308-0d34-0410-b5e6-96231b3b80d8

lib/VMCore/Type.cpp

index 4eb744db2fab4d37aec2ce77a7887df5b5fb0ccd..9b9ca4f0ba05cf4786b1002e90b0f8623ff92b18 100644 (file)
@@ -19,6 +19,7 @@
 #include "llvm/ADT/StringExtras.h"
 #include "llvm/ADT/SCCIterator.h"
 #include "llvm/ADT/STLExtras.h"
+#include "llvm/Support/MathExtras.h"
 #include <algorithm>
 #include <iostream>
 using namespace llvm;
@@ -1005,6 +1006,7 @@ static TypeMap<PackedValType, PackedType> PackedTypes;
 
 PackedType *PackedType::get(const Type *ElementType, unsigned NumElements) {
   assert(ElementType && "Can't get packed of null types!");
+  assert(isPowerOf2_32(NumElements) && "Vector length should be a power of 2!");
 
   PackedValType PVT(ElementType, NumElements);
   PackedType *PT = PackedTypes.get(PVT);