From: Craig Topper Date: Sun, 3 Jun 2018 19:02:57 +0000 (+0000) Subject: [X86] Pass ArrayRef instead of SmallVectorImpl& to the X86 builtin helper functions... X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b76cfbb69a03117c2eb9a54413389c755938cd6f;p=clang [X86] Pass ArrayRef instead of SmallVectorImpl& to the X86 builtin helper functions. NFC git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@333851 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/CGBuiltin.cpp b/lib/CodeGen/CGBuiltin.cpp index e078a091a7..3afd84a895 100644 --- a/lib/CodeGen/CGBuiltin.cpp +++ b/lib/CodeGen/CGBuiltin.cpp @@ -8263,32 +8263,32 @@ static Value *getMaskVecValue(CodeGenFunction &CGF, Value *Mask, } static Value *EmitX86MaskedStore(CodeGenFunction &CGF, - SmallVectorImpl &Ops, + ArrayRef Ops, unsigned Align) { // Cast the pointer to right type. - Ops[0] = CGF.Builder.CreateBitCast(Ops[0], + Value *Ptr = CGF.Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ops[1]->getType())); Value *MaskVec = getMaskVecValue(CGF, Ops[2], Ops[1]->getType()->getVectorNumElements()); - return CGF.Builder.CreateMaskedStore(Ops[1], Ops[0], Align, MaskVec); + return CGF.Builder.CreateMaskedStore(Ops[1], Ptr, Align, MaskVec); } static Value *EmitX86MaskedLoad(CodeGenFunction &CGF, - SmallVectorImpl &Ops, unsigned Align) { + ArrayRef Ops, unsigned Align) { // Cast the pointer to right type. - Ops[0] = CGF.Builder.CreateBitCast(Ops[0], + Value *Ptr = CGF.Builder.CreateBitCast(Ops[0], llvm::PointerType::getUnqual(Ops[1]->getType())); Value *MaskVec = getMaskVecValue(CGF, Ops[2], Ops[1]->getType()->getVectorNumElements()); - return CGF.Builder.CreateMaskedLoad(Ops[0], Align, MaskVec, Ops[1]); + return CGF.Builder.CreateMaskedLoad(Ptr, Align, MaskVec, Ops[1]); } static Value *EmitX86MaskLogic(CodeGenFunction &CGF, Instruction::BinaryOps Opc, - unsigned NumElts, SmallVectorImpl &Ops, + unsigned NumElts, ArrayRef Ops, bool InvertLHS = false) { Value *LHS = getMaskVecValue(CGF, Ops[0], NumElts); Value *RHS = getMaskVecValue(CGF, Ops[1], NumElts); @@ -8301,12 +8301,12 @@ static Value *EmitX86MaskLogic(CodeGenFunction &CGF, Instruction::BinaryOps Opc, } static Value *EmitX86SubVectorBroadcast(CodeGenFunction &CGF, - SmallVectorImpl &Ops, + ArrayRef Ops, llvm::Type *DstTy, unsigned SrcSizeInBits, unsigned Align) { // Load the subvector. - Ops[0] = CGF.Builder.CreateAlignedLoad(Ops[0], Align); + Value *SubVec = CGF.Builder.CreateAlignedLoad(Ops[0], Align); // Create broadcast mask. unsigned NumDstElts = DstTy->getVectorNumElements(); @@ -8317,7 +8317,7 @@ static Value *EmitX86SubVectorBroadcast(CodeGenFunction &CGF, for (unsigned j = 0; j != NumSrcElts; ++j) Mask.push_back(j); - return CGF.Builder.CreateShuffleVector(Ops[0], Ops[0], Mask, "subvecbcst"); + return CGF.Builder.CreateShuffleVector(SubVec, SubVec, Mask, "subvecbcst"); } static Value *EmitX86Select(CodeGenFunction &CGF,