diff options
| author | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-07-26 02:39:23 +0000 |
|---|---|---|
| committer | Bruno Cardoso Lopes <bruno.cardoso@gmail.com> | 2011-07-26 02:39:23 +0000 |
| commit | de7aaf5c7ff57418f197d093b7b91f091ff25136 (patch) | |
| tree | c8e860b1d840f35fe23c9f03429ae02abdbaf95e /llvm/lib | |
| parent | 957a6a13e0ec69e41b868321e3f69c0dbfe6e4ec (diff) | |
| download | bcm5719-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.td | 11 |
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 // |

