Allow vectors in CreatePointerCast.
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 15 Jan 2013 16:43:00 +0000 (16:43 +0000)
committerEvgeniy Stepanov <eugeni.stepanov@gmail.com>
Tue, 15 Jan 2013 16:43:00 +0000 (16:43 +0000)
Both underlying IR operations support vectors of pointers already.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172538 91177308-0d34-0410-b5e6-96231b3b80d8

lib/IR/Instructions.cpp

index 26398ce85156e3d59b1c1aced11a5b271a8fd29e..aba0fc92f247bd98eb1c4582951d246166bcf875 100644 (file)
@@ -2386,11 +2386,11 @@ CastInst *CastInst::CreatePointerCast(Value *S, Type *Ty,
 CastInst *CastInst::CreatePointerCast(Value *S, Type *Ty, 
                                       const Twine &Name, 
                                       Instruction *InsertBefore) {
-  assert(S->getType()->isPointerTy() && "Invalid cast");
-  assert((Ty->isIntegerTy() || Ty->isPointerTy()) &&
+  assert(S->getType()->isPtrOrPtrVectorTy() && "Invalid cast");
+  assert((Ty->isIntOrIntVectorTy() || Ty->isPtrOrPtrVectorTy()) &&
          "Invalid cast");
 
-  if (Ty->isIntegerTy())
+  if (Ty->isIntOrIntVectorTy())
     return Create(Instruction::PtrToInt, S, Ty, Name, InsertBefore);
   return Create(Instruction::BitCast, S, Ty, Name, InsertBefore);
 }