[CodeGen] Use llvm::Type::getVectorNumElements instead of casting to llvm::VectorType and calling getNumElements. This is equivalent and shorter.
llvm-svn: 274823
This commit is contained in:
parent
4ac8e93a4e
commit
f2f1a099a7
|
|
@ -2552,7 +2552,7 @@ static llvm::VectorType *GetFloatNeonType(CodeGenFunction *CGF,
|
||||||
}
|
}
|
||||||
|
|
||||||
Value *CodeGenFunction::EmitNeonSplat(Value *V, Constant *C) {
|
Value *CodeGenFunction::EmitNeonSplat(Value *V, Constant *C) {
|
||||||
unsigned nElts = cast<llvm::VectorType>(V->getType())->getNumElements();
|
unsigned nElts = V->getType()->getVectorNumElements();
|
||||||
Value* SV = llvm::ConstantVector::getSplat(nElts, C);
|
Value* SV = llvm::ConstantVector::getSplat(nElts, C);
|
||||||
return Builder.CreateShuffleVector(V, V, SV, "lane");
|
return Builder.CreateShuffleVector(V, V, SV, "lane");
|
||||||
}
|
}
|
||||||
|
|
@ -7007,8 +7007,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
|
||||||
case X86::BI__builtin_ia32_palignr512_mask: {
|
case X86::BI__builtin_ia32_palignr512_mask: {
|
||||||
unsigned ShiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue();
|
unsigned ShiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue();
|
||||||
|
|
||||||
unsigned NumElts =
|
unsigned NumElts = Ops[0]->getType()->getVectorNumElements();
|
||||||
cast<llvm::VectorType>(Ops[0]->getType())->getNumElements();
|
|
||||||
assert(NumElts % 16 == 0);
|
assert(NumElts % 16 == 0);
|
||||||
|
|
||||||
// If palignr is shifting the pair of vectors more than the size of two
|
// If palignr is shifting the pair of vectors more than the size of two
|
||||||
|
|
|
||||||
|
|
@ -1758,8 +1758,7 @@ void CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(RValue Src,
|
||||||
|
|
||||||
if (const VectorType *VTy = Dst.getType()->getAs<VectorType>()) {
|
if (const VectorType *VTy = Dst.getType()->getAs<VectorType>()) {
|
||||||
unsigned NumSrcElts = VTy->getNumElements();
|
unsigned NumSrcElts = VTy->getNumElements();
|
||||||
unsigned NumDstElts =
|
unsigned NumDstElts = Vec->getType()->getVectorNumElements();
|
||||||
cast<llvm::VectorType>(Vec->getType())->getNumElements();
|
|
||||||
if (NumDstElts == NumSrcElts) {
|
if (NumDstElts == NumSrcElts) {
|
||||||
// Use shuffle vector is the src and destination are the same number of
|
// Use shuffle vector is the src and destination are the same number of
|
||||||
// elements and restore the vector mask since it is on the side it will be
|
// elements and restore the vector mask since it is on the side it will be
|
||||||
|
|
|
||||||
|
|
@ -818,7 +818,7 @@ Value *ScalarExprEmitter::EmitScalarConversion(Value *Src, QualType SrcType,
|
||||||
"Splatted expr doesn't match with vector element type?");
|
"Splatted expr doesn't match with vector element type?");
|
||||||
|
|
||||||
// Splat the element across to all elements
|
// Splat the element across to all elements
|
||||||
unsigned NumElements = cast<llvm::VectorType>(DstTy)->getNumElements();
|
unsigned NumElements = DstTy->getVectorNumElements();
|
||||||
return Builder.CreateVectorSplat(NumElements, Src, "splat");
|
return Builder.CreateVectorSplat(NumElements, Src, "splat");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1529,7 +1529,7 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
|
||||||
llvm::Type *DstTy = ConvertType(DestTy);
|
llvm::Type *DstTy = ConvertType(DestTy);
|
||||||
Value *Elt = Visit(const_cast<Expr*>(E));
|
Value *Elt = Visit(const_cast<Expr*>(E));
|
||||||
// Splat the element across to all elements
|
// Splat the element across to all elements
|
||||||
unsigned NumElements = cast<llvm::VectorType>(DstTy)->getNumElements();
|
unsigned NumElements = DstTy->getVectorNumElements();
|
||||||
return Builder.CreateVectorSplat(NumElements, Elt, "splat");
|
return Builder.CreateVectorSplat(NumElements, Elt, "splat");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue