[llvm] 016ceb8 - [X86][SSE] combineSetCCMOVMSK - allow comparison with upper (known zero) bits in MOVMSK(SHUFFLE(X, u)) -> MOVMSK(X) fold

Roman Lebedev via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 14 03:09:08 PDT 2021


Was the test change accidentally forgotten here?

On Wed, Apr 14, 2021 at 1:02 PM Simon Pilgrim via llvm-commits
<llvm-commits at lists.llvm.org> wrote:
>
>
> Author: Simon Pilgrim
> Date: 2021-04-14T11:02:01+01:00
> New Revision: 016ceb838231a717e889f7ceb38c56575e82aead
>
> URL: https://github.com/llvm/llvm-project/commit/016ceb838231a717e889f7ceb38c56575e82aead
> DIFF: https://github.com/llvm/llvm-project/commit/016ceb838231a717e889f7ceb38c56575e82aead.diff
>
> LOG: [X86][SSE] combineSetCCMOVMSK - allow comparison with upper (known zero) bits in MOVMSK(SHUFFLE(X,u)) -> MOVMSK(X) fold
>
> Extension to rG74f98391a7a4, we can also include any of the upper (known zero) bits in the comparison in the shuffle removal fold, just as long as we demand all the elements of the movmsk source vector.
>
> Added:
>
>
> Modified:
>     llvm/lib/Target/X86/X86ISelLowering.cpp
>
> Removed:
>
>
>
> ################################################################################
> diff  --git a/llvm/lib/Target/X86/X86ISelLowering.cpp b/llvm/lib/Target/X86/X86ISelLowering.cpp
> index 6c8051775915..8b846c8cd96e 100644
> --- a/llvm/lib/Target/X86/X86ISelLowering.cpp
> +++ b/llvm/lib/Target/X86/X86ISelLowering.cpp
> @@ -42371,7 +42371,7 @@ static SDValue combineSetCCMOVMSK(SDValue EFLAGS, X86::CondCode &CC,
>    // MOVMSK(SHUFFLE(X,u)) -> MOVMSK(X) iff every element is referenced.
>    SmallVector<int, 32> ShuffleMask;
>    SmallVector<SDValue, 2> ShuffleInputs;
> -  if (NumElts == CmpBits &&
> +  if (NumElts <= CmpBits &&
>        getTargetShuffleInputs(peekThroughBitcasts(Vec), ShuffleInputs,
>                               ShuffleMask, DAG) &&
>        ShuffleInputs.size() == 1 && !isAnyZeroOrUndef(ShuffleMask) &&
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits


More information about the llvm-commits mailing list