diff options
| -rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index 616519941fc..6f0b8122434 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -5946,12 +5946,9 @@ static bool getFauxShuffleMask(SDValue N, SmallVectorImpl<int> &Mask, DAG.ComputeNumSignBits(N1) <= NumBitsPerElt) return false; } else { - KnownBits Known0, Known1; - DAG.computeKnownBits(N0, Known0); - if (Known0.countMinLeadingZeros() < NumBitsPerElt) - return false; - DAG.computeKnownBits(N1, Known1); - if (Known1.countMinLeadingZeros() < NumBitsPerElt) + APInt ZeroMask = APInt::getHighBitsSet(2 * NumBitsPerElt, NumBitsPerElt); + if (!DAG.MaskedValueIsZero(N0, ZeroMask) || + !DAG.MaskedValueIsZero(N1, ZeroMask)) return false; } |

