Select vector_shuffle v1, undef <2, 3, ?, ?> to MOVHLPS.
authorEvan Cheng <evan.cheng@apple.com>
Wed, 31 May 2006 00:51:37 +0000 (00:51 +0000)
committerEvan Cheng <evan.cheng@apple.com>
Wed, 31 May 2006 00:51:37 +0000 (00:51 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28582 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrSSE.td

index f539c657de1ec7872f838308fb82dac0f0f442f2..b53cdab4ae48a878512bad5b6f4feef236511e95 100644 (file)
@@ -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),