Lines Matching full:shuffle
279 /// If V is a shuffle of values that ONLY returns elements from either LHS or
280 /// RHS, return the shuffle mask and true. Otherwise, return false.
356 /// We are building a shuffle to create V, which is a sequence of insertelement,
359 /// left and right vectors of the proposed shuffle (or 0), and set the Mask
369 assert(V->getType()->isVectorTy() && "Invalid shuffle!");
396 // otherwise we'd end up with a shuffle of three inputs.
404 // further up the chain. Return a trivial shuffle.
419 // extractelement will already have been converted into a shuffle.
430 // vectors, return the vector and the effective shuffle.
512 // (and any insertelements it points to), into one big shuffle.
517 // The proposed shuffle may be trivial, in which case we shouldn't
520 // We now have a shuffle of LHS, RHS, Mask.
801 // Is this an identity shuffle of the LHS value?
804 // Is this an identity shuffle of the RHS value?
809 // Returns true if the shuffle is extracting a contiguous range of values from
838 // Undefined shuffle mask -> undefined value.
856 // Canonicalize shuffle(x ,x,mask) -> shuffle(x, undef,mask')
857 // Canonicalize shuffle(undef,x,mask) -> shuffle(x, undef,mask').
860 // shuffle(undef,undef,mask) -> undef.
892 // Analyze the shuffle, are the LHS or RHS and identity shuffles?
906 // SROA generates shuffle+bitcast when the extracted sub-vector is bitcast to
917 // If the shuffle is extracting a contiguous range of values from the input
921 // isn't aligned then we can shuffle the original vector (keeping the same
933 // Index range [6,10): ^-----------^ Needs an extra shuffle.
965 // Shuffle the input so [0,NumElements) contains the output, and
996 // one without producing an unusual shuffle.
999 // x1=shuffle(v1,v2,mask1)
1000 // x=shuffle(x1,undef,mask)
1002 // x=shuffle(v1,undef,newMask)
1005 // x1=shuffle(v1,undef,mask1)
1006 // x=shuffle(x1,x2,mask)
1009 // x=shuffle(v1,x2,newMask)
1012 // x2=shuffle(v2,undef,mask2)
1013 // x=shuffle(x1,x2,mask)
1016 // x=shuffle(x1,v2,newMask)
1020 // x1=shuffle(v1,undef,mask1)
1021 // x2=shuffle(v2,undef,mask2)
1022 // x=shuffle(x1,x2,mask)
1025 // x=shuffle(v1,v2,newMask)
1030 // we are absolutely afraid of producing a shuffle mask not in the input
1032 // shuffle into two specific shuffles: it may produce worse code. As such,
1034 // input shuffle masks. In this case, merging the shuffles just removes
1161 // If the result mask is equal to one of the original shuffle masks,