summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-07-26 02:39:23 +0000
committerBruno Cardoso Lopes <bruno.cardoso@gmail.com>2011-07-26 02:39:23 +0000
commitde7aaf5c7ff57418f197d093b7b91f091ff25136 (patch)
treec8e860b1d840f35fe23c9f03429ae02abdbaf95e /llvm/lib
parent957a6a13e0ec69e41b868321e3f69c0dbfe6e4ec (diff)
downloadbcm5719-llvm-de7aaf5c7ff57418f197d093b7b91f091ff25136.tar.gz
bcm5719-llvm-de7aaf5c7ff57418f197d093b7b91f091ff25136.zip
Add 128-bit AVX versions of movshdup/mosldup
llvm-svn: 136048
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/X86/X86InstrSSE.td11
1 files changed, 11 insertions, 0 deletions
diff --git a/llvm/lib/Target/X86/X86InstrSSE.td b/llvm/lib/Target/X86/X86InstrSSE.td
index 95e80b94b4f..6e46b3f56d3 100644
--- a/llvm/lib/Target/X86/X86InstrSSE.td
+++ b/llvm/lib/Target/X86/X86InstrSSE.td
@@ -3260,6 +3260,17 @@ let Predicates = [HasSSE3] in {
(MOVSLDUPrm addr:$src)>;
}
+let Predicates = [HasAVX] in {
+ def : Pat<(v4i32 (X86Movshdup VR128:$src)),
+ (VMOVSHDUPrr VR128:$src)>;
+ def : Pat<(v4i32 (X86Movshdup (bc_v4i32 (memopv2i64 addr:$src)))),
+ (VMOVSHDUPrm addr:$src)>;
+ def : Pat<(v4i32 (X86Movsldup VR128:$src)),
+ (VMOVSLDUPrr VR128:$src)>;
+ def : Pat<(v4i32 (X86Movsldup (bc_v4i32 (memopv2i64 addr:$src)))),
+ (VMOVSLDUPrm addr:$src)>;
+}
+
//===---------------------------------------------------------------------===//
// Replicate Double FP - MOVDDUP
//
OpenPOWER on IntegriCloud