[llvm] r345395 - [X86][SSE] Move 2-input limit up from getFauxShuffleMask to resolveTargetShuffleInputs

Eric Christopher via llvm-commits llvm-commits at lists.llvm.org
Fri Oct 26 13:50:27 PDT 2018


Hi Simon,

I'm working on why at the moment, but I am seeing some failures due to this
patch. I think you were meaning to make it NFC, but that part didn't happen
:)

-eric

On Fri, Oct 26, 2018 at 8:21 AM Simon Pilgrim via llvm-commits <
llvm-commits at lists.llvm.org> wrote:

> Author: rksimon
> Date: Fri Oct 26 08:19:02 2018
> New Revision: 345395
>
> URL: http://llvm.org/viewvc/llvm-project?rev=345395&view=rev
> Log:
> [X86][SSE] Move 2-input limit up from getFauxShuffleMask to
> resolveTargetShuffleInputs
>
> Makes no difference to actual shuffle decoding yet, but merges all the
> existing limits in one place for when proper support is fixed.
>
> Modified:
>     llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
>
> Modified: llvm/trunk/lib/Target/X86/X86ISelLowering.cpp
> URL:
> http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp?rev=345395&r1=345394&r2=345395&view=diff
>
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (original)
> +++ llvm/trunk/lib/Target/X86/X86ISelLowering.cpp Fri Oct 26 08:19:02 2018
> @@ -6325,9 +6325,6 @@ static bool getFauxShuffleMask(SDValue N
>      if (!resolveTargetShuffleInputs(N0, SrcInputs0, SrcMask0, DAG) ||
>          !resolveTargetShuffleInputs(N1, SrcInputs1, SrcMask1, DAG))
>        return false;
> -    // TODO - Add support for more than 2 inputs.
> -    if ((SrcInputs0.size() + SrcInputs1.size()) > 2)
> -      return false;
>      int MaskSize = std::max(SrcMask0.size(), SrcMask1.size());
>      SmallVector<int, 64> Mask0, Mask1;
>      scaleShuffleMask<int>(MaskSize / SrcMask0.size(), SrcMask0, Mask0);
> @@ -6387,8 +6384,7 @@ static bool getFauxShuffleMask(SDValue N
>          Mask[i + InsertIdx] = (NumElts * (1 + InputIdx)) + ExtractIdx + M;
>        }
>      }
> -    // TODO - Add support for more than 1 subinput.
> -    return Ops.size() <= 2;
> +    return true;
>    }
>    case ISD::SCALAR_TO_VECTOR: {
>      // Match against a scalar_to_vector of an extract from a vector,
> @@ -6581,7 +6577,7 @@ static bool resolveTargetShuffleInputs(S
>        return false;
>
>    resolveTargetShuffleInputsAndMask(Inputs, Mask);
> -  return true;
> +  return Inputs.size() <= 2;
>  }
>
>  /// Returns the scalar element that will make up the ith
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181026/d0e3ae50/attachment.html>


More information about the llvm-commits mailing list