forked from OSchip/llvm-project
Fix vector pass-through value being unused in IRBuilder::CreateMaskedGather
Also s/0/nullptr in the call site in LV. llvm-svn: 303416
This commit is contained in:
parent
a1c30937ce
commit
4d33c86359
|
@ -381,8 +381,11 @@ CallInst *IRBuilderBase::CreateMaskedGather(Value *Ptrs, unsigned Align,
|
||||||
Mask = Constant::getAllOnesValue(VectorType::get(Type::getInt1Ty(Context),
|
Mask = Constant::getAllOnesValue(VectorType::get(Type::getInt1Ty(Context),
|
||||||
NumElts));
|
NumElts));
|
||||||
|
|
||||||
|
if (!PassThru)
|
||||||
|
PassThru = UndefValue::get(DataTy);
|
||||||
|
|
||||||
Type *OverloadedTypes[] = {DataTy, PtrsTy};
|
Type *OverloadedTypes[] = {DataTy, PtrsTy};
|
||||||
Value * Ops[] = {Ptrs, getInt32(Align), Mask, UndefValue::get(DataTy)};
|
Value * Ops[] = {Ptrs, getInt32(Align), Mask, PassThru};
|
||||||
|
|
||||||
// We specify only one type when we create this intrinsic. Types of other
|
// We specify only one type when we create this intrinsic. Types of other
|
||||||
// arguments are derived from this type.
|
// arguments are derived from this type.
|
||||||
|
|
|
@ -3047,7 +3047,7 @@ void InnerLoopVectorizer::vectorizeMemoryInstruction(Instruction *Instr) {
|
||||||
if (CreateGatherScatter) {
|
if (CreateGatherScatter) {
|
||||||
Value *MaskPart = Legal->isMaskRequired(LI) ? Mask[Part] : nullptr;
|
Value *MaskPart = Legal->isMaskRequired(LI) ? Mask[Part] : nullptr;
|
||||||
NewLI = Builder.CreateMaskedGather(VectorGep[Part], Alignment, MaskPart,
|
NewLI = Builder.CreateMaskedGather(VectorGep[Part], Alignment, MaskPart,
|
||||||
0, "wide.masked.gather");
|
nullptr, "wide.masked.gather");
|
||||||
Entry[Part] = NewLI;
|
Entry[Part] = NewLI;
|
||||||
} else {
|
} else {
|
||||||
// Calculate the pointer for the specific unroll-part.
|
// Calculate the pointer for the specific unroll-part.
|
||||||
|
|
Loading…
Reference in New Issue