OSDN Git Service

2008-02-21 H.J. Lu <hongjiu.lu@intel.com>
authorhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Feb 2009 00:44:23 +0000 (00:44 +0000)
committerhjl <hjl@138bc75d-0d04-0410-961f-82ee72b054a4>
Sun, 22 Feb 2009 00:44:23 +0000 (00:44 +0000)
PR target/39261
* config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
ix86_expand_vector_set for V4DImode in 64bit mode only.
(ix86_expand_vector_init_one_var): Likewise.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@144366 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/i386/i386.c

index b59ffae..f033765 100644 (file)
@@ -1,3 +1,10 @@
+2008-02-21  H.J. Lu  <hongjiu.lu@intel.com>
+
+       PR target/39261
+       * config/i386/i386.c (ix86_expand_vector_init_one_nonzero): Use
+       ix86_expand_vector_set for V4DImode in 64bit mode only.
+       (ix86_expand_vector_init_one_var): Likewise.
+
 2009-02-21  Sebastian Pop  <sebastian.pop@amd.com>
 
        * graphite.c (graphite_trans_loop_block): Adjust tile size to 51.
index d247d07..f179450 100644 (file)
@@ -27129,10 +27129,13 @@ ix86_expand_vector_init_one_nonzero (bool mmx_ok, enum machine_mode mode,
     case V16HImode:
     case V8SImode:
     case V8SFmode:
-    case V4DImode:
     case V4DFmode:
       use_vector_set = TARGET_AVX;
       break;
+    case V4DImode:
+      /* Use ix86_expand_vector_set in 64bit mode only.  */
+      use_vector_set = TARGET_AVX && TARGET_64BIT;
+      break;
     default:
       break;
     }
@@ -27271,8 +27274,11 @@ ix86_expand_vector_init_one_var (bool mmx_ok, enum machine_mode mode,
         the general case.  */
       return false;
 
-    case V4DFmode:
     case V4DImode:
+      /* Use ix86_expand_vector_set in 64bit mode only.  */
+      if (!TARGET_64BIT)
+       return false;
+    case V4DFmode:
     case V8SFmode:
     case V8SImode:
     case V16HImode: