[X86][AVX] lowerShuffleAsLanePermuteAndSHUFP - only set the demanded elements of the lane mask.

Fixes an cyclic dependency issue with an upcoming patch where getVectorShuffle canonicalizes masks with splat build vector sources.
This commit is contained in:
Simon Pilgrim 2020-01-12 09:41:40 +00:00
parent 60cc095ecc
commit b375f28b0e
1 changed files with 1 additions and 2 deletions

View File

@ -14907,8 +14907,7 @@ static SDValue lowerShuffleAsLanePermuteAndSHUFP(const SDLoc &DL, MVT VT,
continue;
int LaneBase = i & ~1;
auto &LaneMask = (i & 1) ? RHSMask : LHSMask;
LaneMask[LaneBase + 0] = (M & ~1);
LaneMask[LaneBase + 1] = (M & ~1) + 1;
LaneMask[LaneBase + (M & 1)] = M;
SHUFPMask |= (M & 1) << i;
}