Skip to content

Commit be93505

Browse files
committed
[LoopVectorize] use unary shuffle creator to reduce code duplication; NFC
1 parent 43270c6 commit be93505

File tree

1 file changed

+5
-9
lines changed

1 file changed

+5
-9
lines changed

llvm/lib/Transforms/Vectorize/LoopVectorize.cpp

Lines changed: 5 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2272,8 +2272,7 @@ Value *InnerLoopVectorizer::reverseVector(Value *Vec) {
22722272
for (unsigned i = 0; i < VF.getKnownMinValue(); ++i)
22732273
ShuffleMask.push_back(VF.getKnownMinValue() - i - 1);
22742274

2275-
return Builder.CreateShuffleVector(Vec, UndefValue::get(Vec->getType()),
2276-
ShuffleMask, "reverse");
2275+
return Builder.CreateShuffleVector(Vec, ShuffleMask, "reverse");
22772276
}
22782277

22792278
// Return whether we allow using masked interleave-groups (for dealing with
@@ -2396,10 +2395,9 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
23962395
Value *GroupMask = MaskForGaps;
23972396
if (BlockInMask) {
23982397
Value *BlockInMaskPart = State.get(BlockInMask, Part);
2399-
auto *Undefs = UndefValue::get(BlockInMaskPart->getType());
24002398
assert(!VF.isScalable() && "scalable vectors not yet supported.");
24012399
Value *ShuffledMask = Builder.CreateShuffleVector(
2402-
BlockInMaskPart, Undefs,
2400+
BlockInMaskPart,
24032401
createReplicatedMask(InterleaveFactor, VF.getKnownMinValue()),
24042402
"interleaved.mask");
24052403
GroupMask = MaskForGaps
@@ -2432,7 +2430,7 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
24322430
createStrideMask(I, InterleaveFactor, VF.getKnownMinValue());
24332431
for (unsigned Part = 0; Part < UF; Part++) {
24342432
Value *StridedVec = Builder.CreateShuffleVector(
2435-
NewLoads[Part], UndefVec, StrideMask, "strided.vec");
2433+
NewLoads[Part], StrideMask, "strided.vec");
24362434

24372435
// If this member has different type, cast the result type.
24382436
if (Member->getType() != ScalarTy) {
@@ -2482,16 +2480,14 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
24822480
// Interleave the elements in the wide vector.
24832481
assert(!VF.isScalable() && "scalable vectors not yet supported.");
24842482
Value *IVec = Builder.CreateShuffleVector(
2485-
WideVec, UndefVec,
2486-
createInterleaveMask(VF.getKnownMinValue(), InterleaveFactor),
2483+
WideVec, createInterleaveMask(VF.getKnownMinValue(), InterleaveFactor),
24872484
"interleaved.vec");
24882485

24892486
Instruction *NewStoreInstr;
24902487
if (BlockInMask) {
24912488
Value *BlockInMaskPart = State.get(BlockInMask, Part);
2492-
auto *Undefs = UndefValue::get(BlockInMaskPart->getType());
24932489
Value *ShuffledMask = Builder.CreateShuffleVector(
2494-
BlockInMaskPart, Undefs,
2490+
BlockInMaskPart,
24952491
createReplicatedMask(InterleaveFactor, VF.getKnownMinValue()),
24962492
"interleaved.mask");
24972493
NewStoreInstr = Builder.CreateMaskedStore(

0 commit comments

Comments
 (0)