OSDN Git Service

[x86] Teach the x86 DAG combiner to form MOVSLDUP and MOVSHDUP
authorChandler Carruth <chandlerc@gmail.com>
Mon, 15 Sep 2014 11:15:23 +0000 (11:15 +0000)
committerChandler Carruth <chandlerc@gmail.com>
Mon, 15 Sep 2014 11:15:23 +0000 (11:15 +0000)
commit08780d4c1d95026c19f31bc19c2fba1789fe422f
tree789ad3cf14361a5c780b5e330d22b85fb8b1ef75
parent69513f19ba0fa39e2ee8793ab06e54a9d5add671
[x86] Teach the x86 DAG combiner to form MOVSLDUP and MOVSHDUP
instructions when it finds an appropriate pattern.

These are lovely instructions, and its a shame to not use them. =] They
are fast, and can hand loads folded into their operands, etc.

I've also plumbed the comment shuffle decoding through the various
layers so that the test cases are printed nicely.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@217758 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/X86/InstPrinter/X86InstComments.cpp
lib/Target/X86/Utils/X86ShuffleDecode.cpp
lib/Target/X86/Utils/X86ShuffleDecode.h
lib/Target/X86/X86ISelLowering.cpp
test/CodeGen/X86/vector-shuffle-128-v4.ll