aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNate Begeman <natebegeman@mac.com>2010-12-03 21:54:39 +0000
committerNate Begeman <natebegeman@mac.com>2010-12-03 21:54:39 +0000
commit07c21d85b49eeb878c8e366b6e422a7d2836a628 (patch)
tree8bf2a6f3217c02b221e9444c06763ed475a00496
parent163e83d69a22916b34c06ae50a1540e90b82becb (diff)
downloadexternal_llvm-07c21d85b49eeb878c8e366b6e422a7d2836a628.tar.gz
external_llvm-07c21d85b49eeb878c8e366b6e422a7d2836a628.tar.bz2
external_llvm-07c21d85b49eeb878c8e366b6e422a7d2836a628.zip
Scalar f32/f64 are also subregs of ymm regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@120844 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/X86/X86InstrSSE.td6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/Target/X86/X86InstrSSE.td b/lib/Target/X86/X86InstrSSE.td
index 228cf48a0a..67cc72f3f0 100644
--- a/lib/Target/X86/X86InstrSSE.td
+++ b/lib/Target/X86/X86InstrSSE.td
@@ -180,6 +180,12 @@ def : Pat<(v4f32 (scalar_to_vector FR32:$src)),
// Implicitly promote a 64-bit scalar to a vector.
def : Pat<(v2f64 (scalar_to_vector FR64:$src)),
(INSERT_SUBREG (v2f64 (IMPLICIT_DEF)), FR64:$src, sub_sd)>;
+// Implicitly promote a 32-bit scalar to a vector.
+def : Pat<(v8f32 (scalar_to_vector FR32:$src)),
+ (INSERT_SUBREG (v8f32 (IMPLICIT_DEF)), FR32:$src, sub_ss)>;
+// Implicitly promote a 64-bit scalar to a vector.
+def : Pat<(v4f64 (scalar_to_vector FR64:$src)),
+ (INSERT_SUBREG (v4f64 (IMPLICIT_DEF)), FR64:$src, sub_sd)>;
let AddedComplexity = 20 in {
// MOVSSrm zeros the high parts of the register; represent this