@@ -2272,8 +2272,7 @@ Value *InnerLoopVectorizer::reverseVector(Value *Vec) {
2272
2272
for (unsigned i = 0 ; i < VF.getKnownMinValue (); ++i)
2273
2273
ShuffleMask.push_back (VF.getKnownMinValue () - i - 1 );
2274
2274
2275
- return Builder.CreateShuffleVector (Vec, UndefValue::get (Vec->getType ()),
2276
- ShuffleMask, " reverse" );
2275
+ return Builder.CreateShuffleVector (Vec, ShuffleMask, " reverse" );
2277
2276
}
2278
2277
2279
2278
// Return whether we allow using masked interleave-groups (for dealing with
@@ -2396,10 +2395,9 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
2396
2395
Value *GroupMask = MaskForGaps;
2397
2396
if (BlockInMask) {
2398
2397
Value *BlockInMaskPart = State.get (BlockInMask, Part);
2399
- auto *Undefs = UndefValue::get (BlockInMaskPart->getType ());
2400
2398
assert (!VF.isScalable () && " scalable vectors not yet supported." );
2401
2399
Value *ShuffledMask = Builder.CreateShuffleVector (
2402
- BlockInMaskPart, Undefs,
2400
+ BlockInMaskPart,
2403
2401
createReplicatedMask (InterleaveFactor, VF.getKnownMinValue ()),
2404
2402
" interleaved.mask" );
2405
2403
GroupMask = MaskForGaps
@@ -2432,7 +2430,7 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
2432
2430
createStrideMask (I, InterleaveFactor, VF.getKnownMinValue ());
2433
2431
for (unsigned Part = 0 ; Part < UF; Part++) {
2434
2432
Value *StridedVec = Builder.CreateShuffleVector (
2435
- NewLoads[Part], UndefVec, StrideMask, " strided.vec" );
2433
+ NewLoads[Part], StrideMask, " strided.vec" );
2436
2434
2437
2435
// If this member has different type, cast the result type.
2438
2436
if (Member->getType () != ScalarTy) {
@@ -2482,16 +2480,14 @@ void InnerLoopVectorizer::vectorizeInterleaveGroup(
2482
2480
// Interleave the elements in the wide vector.
2483
2481
assert (!VF.isScalable () && " scalable vectors not yet supported." );
2484
2482
Value *IVec = Builder.CreateShuffleVector (
2485
- WideVec, UndefVec,
2486
- createInterleaveMask (VF.getKnownMinValue (), InterleaveFactor),
2483
+ WideVec, createInterleaveMask (VF.getKnownMinValue (), InterleaveFactor),
2487
2484
" interleaved.vec" );
2488
2485
2489
2486
Instruction *NewStoreInstr;
2490
2487
if (BlockInMask) {
2491
2488
Value *BlockInMaskPart = State.get (BlockInMask, Part);
2492
- auto *Undefs = UndefValue::get (BlockInMaskPart->getType ());
2493
2489
Value *ShuffledMask = Builder.CreateShuffleVector (
2494
- BlockInMaskPart, Undefs,
2490
+ BlockInMaskPart,
2495
2491
createReplicatedMask (InterleaveFactor, VF.getKnownMinValue ()),
2496
2492
" interleaved.mask" );
2497
2493
NewStoreInstr = Builder.CreateMaskedStore (
0 commit comments