[PATCH] D32993: DAGCombine: Extend createBuildVecShuffle for case len(in_vec) = 4*len(result_vec)

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 18 14:52:21 PDT 2017


efriedma added a comment.

> Conservatively bail out if (min_mask_index*2 > NumElem || max_mask_index * 2 < NumElems) which means that we are accessing elements from one half of the input vector

You could extend this a little: try to cut the input size to one quarter, and generate the shuffle that way, if we can.

I don't think we need a new target hook here; isExtractSubvectorCheap should be enough to drive the behavior here.

> Always allow creation of large shuffles (what the current patch does)

We could try to clean this up later in DAGCombine, yes... but it seems better to try to generate a reasonable shuffle from the start.


https://reviews.llvm.org/D32993





More information about the llvm-commits mailing list