OSDN Git Service

PR target/57356
authoruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 2013 16:07:08 +0000 (16:07 +0000)
committeruros <uros@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 22 May 2013 16:07:08 +0000 (16:07 +0000)
* config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
for non-sse2 targets.  Simplify mode attribute calculation.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/gcc-4_7-branch@199205 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.md

index 415e959..d6ed9bb 100644 (file)
@@ -1,3 +1,9 @@
+2013-05-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/57356
+       * config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
+       for non-sse2 targets.  Simplify mode attribute calculation.
+
 2013-05-17  Uros Bizjak  <ubizjak@gmail.com>
 
        Backport from mainline
index 900252d..b0e278e 100644 (file)
   [(set_attr "type" "*,*,sselog1,ssemov,ssemov")
    (set_attr "prefix" "*,*,maybe_vex,maybe_vex,maybe_vex")
    (set (attr "mode")
-       (cond [(eq_attr "alternative" "2,3")
-                (if_then_else
-                  (match_test "optimize_function_for_size_p (cfun)")
-                  (const_string "V4SF")
-                  (const_string "TI"))
-              (eq_attr "alternative" "4")
-                (if_then_else
-                  (ior (match_test "TARGET_SSE_TYPELESS_STORES")
-                       (match_test "optimize_function_for_size_p (cfun)"))
-                  (const_string "V4SF")
-                  (const_string "TI"))]
-              (const_string "DI")))])
+       (cond [(eq_attr "alternative" "0,1")
+                (const_string "DI")
+              (ior (not (match_test "TARGET_SSE2"))
+                   (match_test "optimize_function_for_size_p (cfun)"))
+                (const_string "V4SF")
+              (and (eq_attr "alternative" "4")
+                   (match_test "TARGET_SSE_TYPELESS_STORES"))
+                (const_string "V4SF")
+              ]
+              (const_string "TI")))])
 
 (define_split
   [(set (match_operand:TI 0 "nonimmediate_operand" "")