diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 073b78b6ae67c..c7a42b15cb0c1 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -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; }