diff options
author | H.J. Lu <hongjiu.lu@intel.com> | 2008-05-21 16:57:05 +0000 |
---|---|---|
committer | H.J. Lu <hjl@gcc.gnu.org> | 2008-05-21 09:57:05 -0700 |
commit | 0864e1e889d6d9d1b17d6fffb5e00e9071ae0810 (patch) | |
tree | 6ea4edf0dffd9af479bdcae4169a6f57d239b436 | |
parent | f8caa3a86cd7cd739d6a228489d2eb0eaaa63cef (diff) | |
download | gcc-0864e1e889d6d9d1b17d6fffb5e00e9071ae0810.zip gcc-0864e1e889d6d9d1b17d6fffb5e00e9071ae0810.tar.gz gcc-0864e1e889d6d9d1b17d6fffb5e00e9071ae0810.tar.bz2 |
i386.c (ix86_expand_vector_init_general): Remove goto for vec_concat and vec_interleave.
2008-05-21 H.J. Lu <hongjiu.lu@intel.com>
* config/i386/i386.c (ix86_expand_vector_init_general): Remove
goto for vec_concat and vec_interleave.
From-SVN: r135725
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/i386/i386.c | 21 |
2 files changed, 9 insertions, 17 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index b686fe5..55b9968 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2008-05-21 H.J. Lu <hongjiu.lu@intel.com> + * config/i386/i386.c (ix86_expand_vector_init_general): Remove + goto for vec_concat and vec_interleave. + +2008-05-21 H.J. Lu <hongjiu.lu@intel.com> + * config/i386/sse.md (vec_initv4sf): Removed. (vec_initv2df): Likewise. (vec_initv2di): Likewise. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index c61cc8a..c36b425 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -24084,21 +24084,13 @@ ix86_expand_vector_init_general (bool mmx_ok, enum machine_mode mode, case V2SImode: if (!mmx_ok && !TARGET_SSE) break; - - n = 2; - goto vec_concat; + /* FALLTHRU */ case V4SFmode: case V4SImode: - n = 4; - goto vec_concat; - case V2DFmode: case V2DImode: - n = 2; - goto vec_concat; - -vec_concat: + n = GET_MODE_SIZE (mode) / GET_MODE_SIZE (GET_MODE_INNER (mode)); for (i = 0; i < n; i++) ops[i] = XVECEXP (vals, 0, i); ix86_expand_vector_init_concat (mode, target, ops, n); @@ -24107,18 +24099,13 @@ vec_concat: case V16QImode: if (!TARGET_SSE4_1) break; - - n = 16; - goto vec_interleave; + /* FALLTHRU */ case V8HImode: if (!TARGET_SSE2) break; - n = 8; - goto vec_interleave; - -vec_interleave: + n = GET_MODE_SIZE (mode) / GET_MODE_SIZE (GET_MODE_INNER (mode)); for (i = 0; i < n; i++) ops[i] = XVECEXP (vals, 0, i); ix86_expand_vector_init_interleave (mode, target, ops, n >> 1); |