diff options
author | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-01-12 09:41:40 +0000 |
---|---|---|
committer | Simon Pilgrim <llvm-dev@redking.me.uk> | 2020-01-12 09:41:40 +0000 |
commit | b375f28b0ec1129a4b94770a9c55ba49222ea1dd (patch) | |
tree | dc31be0e098ad98e22b634eb00b015ae22deace8 /llvm/lib | |
parent | 60cc095ecc34d72a9ac6947f39c6e2a0cdf5449f (diff) | |
download | bcm5719-llvm-b375f28b0ec1129a4b94770a9c55ba49222ea1dd.tar.gz bcm5719-llvm-b375f28b0ec1129a4b94770a9c55ba49222ea1dd.zip |
[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.
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 073b78b6ae6..c7a42b15cb0 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; } |