diff options
-rw-r--r-- | llvm/lib/Target/X86/X86ISelLowering.cpp | 10 |
1 files changed, 3 insertions, 7 deletions
diff --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp index c99ad480601..5e03e94f459 100644 --- a/llvm/lib/Target/X86/X86ISelLowering.cpp +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp @@ -31807,13 +31807,9 @@ static SDValue combineX86ShufflesRecursively( : (OpMask[OpIdx] << OpRatioLog2) + (RootMaskedIdx & (OpRatio - 1)); OpMaskedIdx = OpMaskedIdx & (MaskWidth - 1); - if (OpMask[OpIdx] < (int)OpMask.size()) { - assert(0 <= OpInputIdx[0] && "Unknown target shuffle input"); - OpMaskedIdx += OpInputIdx[0] * MaskWidth; - } else { - assert(0 <= OpInputIdx[1] && "Unknown target shuffle input"); - OpMaskedIdx += OpInputIdx[1] * MaskWidth; - } + int InputIdx = OpMask[OpIdx] / (int)OpMask.size(); + assert(0 <= OpInputIdx[InputIdx] && "Unknown target shuffle input"); + OpMaskedIdx += OpInputIdx[InputIdx] * MaskWidth; Mask[i] = OpMaskedIdx; } |