[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