[PATCH] D53148: [X86][AVX] Add lowerVectorShuffleAsLanePermuteAndPermute for v4f64 shuffles (PR39161)

Simon Pilgrim via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 11 10:24:40 PDT 2018


RKSimon created this revision.
RKSimon added reviewers: craig.topper, spatel, lebedev.ri, andreadb.

Add shuffle lowering for the case where we can shuffle the lanes into place followed by an in-lane permute.

This is mainly for cases where we can have non-repeating permutes in each lane, but for now I've just enabled it for v4f64 unary shuffles to fix PR39161. There is not much test coverage for other shuffles that might benefit yet.

We now have several cross-lane shuffle lowering methods that all do something similar - I've looked at merging some of these (notably by making the repeated mask mechanism in lowerVectorShuffleByMerging128BitLanes optional), but there is a lot of assertions/assumptions in the way that makes this tricky - I ended up going for adding yet another relatively simple method instead.


Repository:
  rL LLVM

https://reviews.llvm.org/D53148

Files:
  lib/Target/X86/X86ISelLowering.cpp
  test/CodeGen/X86/vector-shuffle-256-v4.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D53148.169242.patch
Type: text/x-patch
Size: 5232 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20181011/75a6c439/attachment.bin>


More information about the llvm-commits mailing list