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),