[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) {
 | 
			
		||||
  unsigned nElts = cast<llvm::VectorType>(V->getType())->getNumElements();
 | 
			
		||||
  unsigned nElts = V->getType()->getVectorNumElements();
 | 
			
		||||
  Value* SV = llvm::ConstantVector::getSplat(nElts, C);
 | 
			
		||||
  return Builder.CreateShuffleVector(V, V, SV, "lane");
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			@ -7007,8 +7007,7 @@ Value *CodeGenFunction::EmitX86BuiltinExpr(unsigned BuiltinID,
 | 
			
		|||
  case X86::BI__builtin_ia32_palignr512_mask: {
 | 
			
		||||
    unsigned ShiftVal = cast<llvm::ConstantInt>(Ops[2])->getZExtValue();
 | 
			
		||||
 | 
			
		||||
    unsigned NumElts =
 | 
			
		||||
      cast<llvm::VectorType>(Ops[0]->getType())->getNumElements();
 | 
			
		||||
    unsigned NumElts = Ops[0]->getType()->getVectorNumElements();
 | 
			
		||||
    assert(NumElts % 16 == 0);
 | 
			
		||||
 | 
			
		||||
    // 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>()) {
 | 
			
		||||
    unsigned NumSrcElts = VTy->getNumElements();
 | 
			
		||||
    unsigned NumDstElts =
 | 
			
		||||
       cast<llvm::VectorType>(Vec->getType())->getNumElements();
 | 
			
		||||
    unsigned NumDstElts = Vec->getType()->getVectorNumElements();
 | 
			
		||||
    if (NumDstElts == NumSrcElts) {
 | 
			
		||||
      // 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
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -818,7 +818,7 @@ Value *ScalarExprEmitter::EmitScalarConversion(Value *Src, QualType SrcType,
 | 
			
		|||
           "Splatted expr doesn't match with vector element type?");
 | 
			
		||||
 | 
			
		||||
    // Splat the element across to all elements
 | 
			
		||||
    unsigned NumElements = cast<llvm::VectorType>(DstTy)->getNumElements();
 | 
			
		||||
    unsigned NumElements = DstTy->getVectorNumElements();
 | 
			
		||||
    return Builder.CreateVectorSplat(NumElements, Src, "splat");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -1529,7 +1529,7 @@ Value *ScalarExprEmitter::VisitCastExpr(CastExpr *CE) {
 | 
			
		|||
    llvm::Type *DstTy = ConvertType(DestTy);
 | 
			
		||||
    Value *Elt = Visit(const_cast<Expr*>(E));
 | 
			
		||||
    // Splat the element across to all elements
 | 
			
		||||
    unsigned NumElements = cast<llvm::VectorType>(DstTy)->getNumElements();
 | 
			
		||||
    unsigned NumElements = DstTy->getVectorNumElements();
 | 
			
		||||
    return Builder.CreateVectorSplat(NumElements, Elt, "splat");
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue