diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2009-02-22 00:44:23 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2009-02-21 16:44:23 -0800 |
commit | f161e1584d519c1ee9d92d5694d04e98f84b16e9 (patch) | |
tree | 0704f7670dfef0a08cc8066b8ce3f3d1f3797a5d | |
parent | f592b0b3f1564fcc71807722bc335a1ad3ffd57d (diff) | |
download | gcc-f161e1584d519c1ee9d92d5694d04e98f84b16e9.zip gcc-f161e1584d519c1ee9d92d5694d04e98f84b16e9.tar.gz gcc-f161e1584d519c1ee9d92d5694d04e98f84b16e9.tar.bz2 |
re PR target/39261 (_mm256_set_epi64x failed on 32bit)
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.
From-SVN: r144366
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 10 |
2 files changed, 15 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b59ffae..f033765 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index d247d07..f179450 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -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: |