[llvm-commits] [llvm] r70391 - in /llvm/trunk: include/llvm/CodeGen/SelectionDAGNodes.h lib/CodeGen/SelectionDAG/SelectionDAG.cpp

Evan Cheng evan.cheng at apple.com
Wed Apr 29 14:31:06 PDT 2009


I still see this:

SDValue DAGCombiner::visitVECTOR_SHUFFLE(SDNode *N) {
   return SDValue();
...

Is the transformations disabled on purpose?

Evan

On Apr 29, 2009, at 11:13 AM, Nate Begeman wrote:

> Author: sampo
> Date: Wed Apr 29 13:13:31 2009
> New Revision: 70391
>
> URL: http://llvm.org/viewvc/llvm-project?rev=70391&view=rev
> Log:
> Update comment, replace theoretically impossible check with an assert.
>
> Modified:
>    llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
>    llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
>
> Modified: llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h?rev=70391&r1=70390&r2=70391&view=diff
>
> =
> =
> =
> =
> =
> =
> =
> =
> ======================================================================
> --- llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h (original)
> +++ llvm/trunk/include/llvm/CodeGen/SelectionDAGNodes.h Wed Apr 29  
> 13:13:31 2009
> @@ -317,13 +317,13 @@
>     /// IDX, which must be a multiple of the result vector length.
>     EXTRACT_SUBVECTOR,
>
> -    /// VECTOR_SHUFFLE(VEC1, VEC2, SHUFFLEVEC) - Returns a vector,  
> of the same
> -    /// type as VEC1/VEC2.  SHUFFLEVEC is a BUILD_VECTOR of  
> constant int values
> -    /// (maybe of an illegal datatype) or undef that indicate which  
> value each
> -    /// result element will get.  The elements of VEC1/VEC2 are  
> enumerated in
> -    /// order.  This is quite similar to the Altivec 'vperm'  
> instruction, except
> -    /// that the indices must be constants and are in terms of the  
> element size
> -    /// of VEC1/VEC2, not in terms of bytes.
> +    /// VECTOR_SHUFFLE(VEC1, VEC2) - Returns a vector, of the same  
> type as
> +    /// VEC1/VEC2.  A VECTOR_SHUFFLE node also contains an array of  
> constant int
> +    /// values that indicate which value (or undef) each result  
> element will
> +    /// get.  These constant ints are accessible through the
> +    /// ShuffleVectorSDNode class.  This is quite similar to the  
> Altivec
> +    /// 'vperm' instruction, except that the indices must be  
> constants and are
> +    /// in terms of the element size of VEC1/VEC2, not in terms of  
> bytes.
>     VECTOR_SHUFFLE,
>
>     /// SCALAR_TO_VECTOR(VAL) - This represents the operation of  
> loading a
>
> Modified: llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp?rev=70391&r1=70390&r2=70391&view=diff
>
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> = 
> ======================================================================
> --- llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (original)
> +++ llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp Wed Apr 29  
> 13:13:31 2009
> @@ -5731,9 +5731,7 @@
>   for (i = 0, e = VT.getVectorNumElements(); i != e && Mask[i] < 0; + 
> +i)
>     /* search */;
>
> -  // If we hit the end of the mask looking for a non-undef value,  
> return false.
> -  if (i == e)
> -    return false;
> +  assert(i != e && "VECTOR_SHUFFLE node with all undef indices!");
>
>   // Make sure all remaining elements are either undef or the same  
> as the first
>   // non-undef value.
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list