[Bug target/57356] gcc-4.8: SSE2 instructions generated with '-mno-sse2'

2013-05-22 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57356

Uroš Bizjak  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
URL||http://gcc.gnu.org/ml/gcc-p
   ||atches/2013-05/msg01175.htm
   ||l
 Resolution|--- |FIXED

--- Comment #2 from Uroš Bizjak  ---
FIXED for 4.7.4 and 4.8.1 by:

Author: uros
Date: Wed May 22 12:16:41 2013
New Revision: 199195

URL: http://gcc.gnu.org/viewcvs?rev=199195&root=gcc&view=rev
Log:
PR target/57356
* config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
for non-sse2 targets.
(*movti_internal): Simplify mode attribute calculation.


Modified:
branches/gcc-4_8-branch/gcc/ChangeLog
branches/gcc-4_8-branch/gcc/config/i386/i386.md

Author: uros
Date: Wed May 22 16:07:08 2013
New Revision: 199205

URL: http://gcc.gnu.org/viewcvs?rev=199205&root=gcc&view=rev
Log:
PR target/57356
* config/i386/i386.md (*movti_internal_rex64): Emit movaps/movups
for non-sse2 targets.  Simplify mode attribute calculation.


Modified:
branches/gcc-4_7-branch/gcc/ChangeLog
branches/gcc-4_7-branch/gcc/config/i386/i386.md

[Bug target/57356] gcc-4.8: SSE2 instructions generated with '-mno-sse2'

2013-05-21 Thread ubizjak at gmail dot com
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=57356

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2013-05-21
  Component|c   |target
   Assignee|unassigned at gcc dot gnu.org  |ubizjak at gmail dot com
   Target Milestone|--- |4.7.4
 Ever confirmed|0   |1

--- Comment #1 from Uroš Bizjak  ---
There are many assumptions that x86 implies SSE2 throughout the
target-dependant part of gcc. This one is simple to fix with following fix to
movti insn pattern.

--cut here--
Index: config/i386/i386.md
===
--- config/i386/i386.md (revision 199017)
+++ config/i386/i386.md (working copy)
@@ -1805,7 +1805,8 @@
 (const_string "V4SF")
   (match_test "TARGET_AVX")
 (const_string "TI")
-  (match_test "optimize_function_for_size_p (cfun)")
+  (ior (not (match_test "TARGET_SSE2"))
+   (match_test "optimize_function_for_size_p (cfun)"))
 (const_string "V4SF")
   ]
   (const_string "TI")))])
--cut here--

The 4.7 branch is also affected, 4.9 is not.