[llvm-commits] [llvm] r51327 - /llvm/trunk/lib/Target/X86/X86InstrSSE.td

Evan Cheng evan.cheng at apple.com
Tue May 20 11:24:48 PDT 2008


Author: evancheng
Date: Tue May 20 13:24:47 2008
New Revision: 51327

URL: http://llvm.org/viewvc/llvm-project?rev=51327&view=rev
Log:
movsd and movq do not require 16-byte alignment. This fixes vec_set-5.ll on Linux.

Modified:
    llvm/trunk/lib/Target/X86/X86InstrSSE.td

Modified: llvm/trunk/lib/Target/X86/X86InstrSSE.td
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrSSE.td?rev=51327&r1=51326&r2=51327&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrSSE.td (original)
+++ llvm/trunk/lib/Target/X86/X86InstrSSE.td Tue May 20 13:24:47 2008
@@ -1036,7 +1036,7 @@
                    [(set VR128:$dst, (v4f32 (X86vzmovl (v4f32 (scalar_to_vector
                                                       (loadf32 addr:$src))))))]>;
 
-def : Pat<(v4f32 (X86vzmovl (memopv4f32 addr:$src))),
+def : Pat<(v4f32 (X86vzmovl (loadv4f32 addr:$src))),
           (MOVZSS2PSrm addr:$src)>;
 
 //===----------------------------------------------------------------------===//
@@ -2325,7 +2325,9 @@
                         (v2f64 (X86vzmovl (v2f64 (scalar_to_vector
                                                  (loadf64 addr:$src))))))]>;
 
-def : Pat<(v2f64 (X86vzmovl (memopv2f64 addr:$src))),
+def : Pat<(v2f64 (X86vzmovl (loadv2f64 addr:$src))),
+            (MOVZSD2PDrm addr:$src)>;
+def : Pat<(v2f64 (X86vzmovl (bc_v2f64 (loadv4f32 addr:$src)))),
             (MOVZSD2PDrm addr:$src)>;
 def : Pat<(v2f64 (X86vzload addr:$src)), (MOVZSD2PDrm addr:$src)>;
 }
@@ -2367,13 +2369,17 @@
                     [(set VR128:$dst, (v2i64 (X86vzmovl (v2i64 VR128:$src))))]>,
                       XS, Requires<[HasSSE2]>;
 
-let AddedComplexity = 20 in
+let AddedComplexity = 20 in {
 def MOVZPQILo2PQIrm : I<0x7E, MRMSrcMem, (outs VR128:$dst), (ins i128mem:$src),
                         "movq\t{$src, $dst|$dst, $src}",
                     [(set VR128:$dst, (v2i64 (X86vzmovl
-                                             (memopv2i64 addr:$src))))]>,
+                                             (loadv2i64 addr:$src))))]>,
                       XS, Requires<[HasSSE2]>;
 
+def : Pat<(v2i64 (X86vzmovl (bc_v2i64 (loadv4i32 addr:$src)))),
+            (MOVZPQILo2PQIrm addr:$src)>;
+}
+
 //===----------------------------------------------------------------------===//
 // SSE3 Instructions
 //===----------------------------------------------------------------------===//





More information about the llvm-commits mailing list