X86: When combining shuffles just remove shuffles that are completely redundant.
[oota-llvm.git] / test / CodeGen / X86 / vector-shuffle-combining.ll
index 1bc2aee6efe43bc364173be79b6aa957a16651bd..e60ecb70dec6551ff17714207b103b4022dff9e3 100644 (file)
@@ -66,6 +66,16 @@ define <4 x i32> @combine_pshufd5(<4 x i32> %a) {
   ret <4 x i32> %d
 }
 
+define <4 x i32> @combine_pshufd6(<4 x i32> %a) {
+; CHECK-SSE2-LABEL: @combine_pshufd6
+; CHECK-SSE2:       # BB#0:
+; CHECK-SSE2-NEXT:    pshufd $0
+; CHECK-SSE2-NEXT:    retq
+  %b = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %a, i8 0)
+  %c = call <4 x i32> @llvm.x86.sse2.pshuf.d(<4 x i32> %b, i8 8)
+  ret <4 x i32> %c
+}
+
 define <8 x i16> @combine_pshuflw1(<8 x i16> %a) {
 ; CHECK-SSE2-LABEL: @combine_pshuflw1
 ; CHECK-SSE2:       # BB#0: