OSDN Git Service

[X86][SSE] Fold unpack(hop(),hop()) -> permute(hop())
authorSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 8 Jan 2021 15:08:12 +0000 (15:08 +0000)
committerSimon Pilgrim <llvm-dev@redking.me.uk>
Fri, 8 Jan 2021 15:22:17 +0000 (15:22 +0000)
commit80dee7965dffdfb866afa9d74f3a4a97453708b2
treec3e7a04206df4fa179d868a8bd02aa4869797990
parenta36a2864c0d4b89b66e0cdfde0f82d569a293e10
[X86][SSE] Fold unpack(hop(),hop()) -> permute(hop())

UNPCKL/UNPCKH only uses one op from each hop, so we can merge the hops and then permute the result.
llvm/lib/Target/X86/X86ISelLowering.cpp
llvm/test/CodeGen/X86/horizontal-shuffle-2.ll