summaryrefslogtreecommitdiff
path: root/lib/Target/X86/X86InstrMMX.td
diff options
context:
space:
mode:
authorEvan Cheng <evan.cheng@apple.com>2006-03-21 00:33:35 +0000
committerEvan Cheng <evan.cheng@apple.com>2006-03-21 00:33:35 +0000
commit811ec1c92a4965600c950bac5762200db9afb1b4 (patch)
treef56a5d67c458d77b0f44f4ccf44a066d6c0ec0ef /lib/Target/X86/X86InstrMMX.td
parent5c791c8ba44a16c743b6d480dd6b5f8f46e246fd (diff)
downloadllvm-811ec1c92a4965600c950bac5762200db9afb1b4.tar.gz
llvm-811ec1c92a4965600c950bac5762200db9afb1b4.tar.bz2
llvm-811ec1c92a4965600c950bac5762200db9afb1b4.tar.xz
x86 ISD::SCALAR_TO_VECTOR support.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@26911 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/X86/X86InstrMMX.td')
-rw-r--r--lib/Target/X86/X86InstrMMX.td18
1 files changed, 18 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrMMX.td b/lib/Target/X86/X86InstrMMX.td
index e1cca71a98..4152340225 100644
--- a/lib/Target/X86/X86InstrMMX.td
+++ b/lib/Target/X86/X86InstrMMX.td
@@ -22,6 +22,24 @@ def IMPLICIT_DEF_VR64 : I<0, Pseudo, (ops VR64:$dst),
def : Pat<(v4i16 (undef)), (IMPLICIT_DEF_VR64)>, Requires<[HasMMX]>;
def : Pat<(v2i32 (undef)), (IMPLICIT_DEF_VR64)>, Requires<[HasMMX]>;
+def SCALAR_TO_VECTOR_V8I8 : I<0, Pseudo, (ops VR64:$dst, R8:$src),
+ "#SCALAR_TO_VECTOR $src",
+ [(set VR64:$dst,
+ (v8i8 (scalar_to_vector R8:$src)))]>,
+ Requires<[HasMMX]>;
+
+def SCALAR_TO_VECTOR_V4I16 : I<0, Pseudo, (ops VR64:$dst, R16:$src),
+ "#SCALAR_TO_VECTOR $src",
+ [(set VR64:$dst,
+ (v4i16 (scalar_to_vector R16:$src)))]>,
+ Requires<[HasMMX]>;
+
+def SCALAR_TO_VECTOR_V2I32 : I<0, Pseudo, (ops VR64:$dst, R32:$src),
+ "#SCALAR_TO_VECTOR $src",
+ [(set VR64:$dst,
+ (v2i32 (scalar_to_vector R32:$src)))]>,
+ Requires<[HasMMX]>;
+
// Move Instructions
def MOVD64rr : I<0x6E, MRMSrcReg, (ops VR64:$dst, R32:$src),
"movd {$src, $dst|$dst, $src}", []>, TB,