Get rid of a bogus pattern that interferes with optimization.
authorEli Friedman <eli.friedman@gmail.com>
Sat, 6 Jun 2009 04:17:04 +0000 (04:17 +0000)
committerEli Friedman <eli.friedman@gmail.com>
Sat, 6 Jun 2009 04:17:04 +0000 (04:17 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72985 91177308-0d34-0410-b5e6-96231b3b80d8

lib/Target/X86/X86InstrMMX.td
test/CodeGen/X86/2009-06-05-ScalarToVectorByteMMX.ll [new file with mode: 0644]

index 8f287e17dc3ff8231bb9259cd22923db25a8ae84..38c54712f18ea3ff57e5d8e492b653b1ede8bb5a 100644 (file)
@@ -605,13 +605,6 @@ let AddedComplexity = 15 in {
             (MMX_PUNPCKLDQrr VR64:$src, (MMX_V_SET0))>;
 }
 
-// Scalar to v4i16 / v8i8. The source may be a GR32, but only the lower
-// 8 or 16-bits matter.
-def : Pat<(bc_v8i8  (v2i32 (scalar_to_vector GR32:$src))),
-          (MMX_MOVD64rr GR32:$src)>;
-def : Pat<(bc_v4i16 (v2i32 (scalar_to_vector GR32:$src))),
-          (MMX_MOVD64rr GR32:$src)>;
-
 // Patterns to perform canonical versions of vector shuffling.
 let AddedComplexity = 10 in {
   def : Pat<(v8i8  (mmx_unpckl_undef VR64:$src, (undef))),
diff --git a/test/CodeGen/X86/2009-06-05-ScalarToVectorByteMMX.ll b/test/CodeGen/X86/2009-06-05-ScalarToVectorByteMMX.ll
new file mode 100644 (file)
index 0000000..94df530
--- /dev/null
@@ -0,0 +1,7 @@
+; RUN: llvm-as < %s | llc -march=x86 -mattr=+mmx | not grep movl
+
+define <8 x i8> @a(i8 zeroext %x) nounwind {
+  %r = insertelement <8 x i8> undef, i8 %x, i32 0
+  ret <8 x i8> %r
+}
+