[PATCH] D92482: [IR] Support scalable vectors in CastInst::CreatePointerCast
Cullen Rhodes via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Wed Dec 2 07:02:20 PST 2020
c-rhodes created this revision.
c-rhodes added reviewers: sdesmalen, RKSimon, efriedma.
Herald added subscribers: dexonsmith, hiraditya.
Herald added a project: LLVM.
c-rhodes requested review of this revision.
Repository:
rG LLVM Github Monorepo
https://reviews.llvm.org/D92482
Files:
llvm/lib/IR/Instructions.cpp
llvm/unittests/IR/InstructionsTest.cpp
Index: llvm/unittests/IR/InstructionsTest.cpp
===================================================================
--- llvm/unittests/IR/InstructionsTest.cpp
+++ llvm/unittests/IR/InstructionsTest.cpp
@@ -374,11 +374,19 @@
Constant *NullV2I32Ptr = Constant::getNullValue(V2Int32PtrTy);
auto Inst1 = CastInst::CreatePointerCast(NullV2I32Ptr, V2Int32Ty, "foo", BB);
+ Constant *NullVScaleV2I32Ptr = Constant::getNullValue(VScaleV2Int32PtrTy);
+ auto Inst1VScale = CastInst::CreatePointerCast(
+ NullVScaleV2I32Ptr, VScaleV2Int32Ty, "foo.vscale", BB);
+
// Second form
auto Inst2 = CastInst::CreatePointerCast(NullV2I32Ptr, V2Int32Ty);
+ auto Inst2VScale =
+ CastInst::CreatePointerCast(NullVScaleV2I32Ptr, VScaleV2Int32Ty);
delete Inst2;
+ delete Inst2VScale;
Inst1->eraseFromParent();
+ Inst1VScale->eraseFromParent();
delete BB;
}
Index: llvm/lib/IR/Instructions.cpp
===================================================================
--- llvm/lib/IR/Instructions.cpp
+++ llvm/lib/IR/Instructions.cpp
@@ -3022,8 +3022,8 @@
"Invalid cast");
assert(Ty->isVectorTy() == S->getType()->isVectorTy() && "Invalid cast");
assert((!Ty->isVectorTy() ||
- cast<FixedVectorType>(Ty)->getNumElements() ==
- cast<FixedVectorType>(S->getType())->getNumElements()) &&
+ cast<VectorType>(Ty)->getElementCount() ==
+ cast<VectorType>(S->getType())->getElementCount()) &&
"Invalid cast");
if (Ty->isIntOrIntVectorTy())
@@ -3041,8 +3041,8 @@
"Invalid cast");
assert(Ty->isVectorTy() == S->getType()->isVectorTy() && "Invalid cast");
assert((!Ty->isVectorTy() ||
- cast<FixedVectorType>(Ty)->getNumElements() ==
- cast<FixedVectorType>(S->getType())->getNumElements()) &&
+ cast<VectorType>(Ty)->getElementCount() ==
+ cast<VectorType>(S->getType())->getElementCount()) &&
"Invalid cast");
if (Ty->isIntOrIntVectorTy())
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92482.308956.patch
Type: text/x-patch
Size: 1991 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20201202/ea2fa698/attachment.bin>
More information about the llvm-commits
mailing list