summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-05-31 00:51:37 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-05-31 00:51:37 +0000
commit9d09b89f39b56e39d2fbd981154d19c694d77f69 (patch)
tree360528bb8da4e959b8b2e8cea941a64f4baf2911
parent8f692e2457d24973e1a257083a8590d2a76d877f (diff)
downloadllvm-9d09b89f39b56e39d2fbd981154d19c694d77f69.tar.gz
llvm-9d09b89f39b56e39d2fbd981154d19c694d77f69.tar.bz2
llvm-9d09b89f39b56e39d2fbd981154d19c694d77f69.tar.xz
Select vector_shuffle v1, undef <2, 3, ?, ?> to MOVHLPS.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28582 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86InstrSSE.td8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td
index f539c657de..b53cdab4ae 100644
--- a/lib/Target/X86/X86InstrSSE.td
+++ b/lib/Target/X86/X86InstrSSE.td
@@ -2453,6 +2453,14 @@ def : Pat<(v4i32 (vector_shuffle VR128:$src1, VR128:$src2,
MOVHLPS_shuffle_mask)),
(v4i32 (MOVHLPSrr VR128:$src1, VR128:$src2))>;
+// vector_shuffle v1, undef <2, 3, ?, ?> using MOVHLPS
+def : Pat<(v4f32 (vector_shuffle VR128:$src1, (undef),
+ UNPCKH_shuffle_mask)),
+ (v4f32 (MOVHLPSrr VR128:$src1, VR128:$src1))>;
+def : Pat<(v4i32 (vector_shuffle VR128:$src1, (undef),
+ UNPCKH_shuffle_mask)),
+ (v4i32 (MOVHLPSrr VR128:$src1, VR128:$src1))>;
+
// vector_shuffle v1, (load v2) <4, 5, 2, 3> using MOVLPS
// vector_shuffle v1, (load v2) <0, 1, 4, 5> using MOVHPS
def : Pat<(v4f32 (vector_shuffle VR128:$src1, (loadv4f32 addr:$src2),