diff options
author | Michael Meissner <michael.meissner@amd.com> | 2007-09-25 15:54:00 +0000 |
---|---|---|
committer | Michael Meissner <meissner@gcc.gnu.org> | 2007-09-25 15:54:00 +0000 |
commit | 53a833483c71b1cb246ba2ead1b95580d60f9bd5 (patch) | |
tree | 497af38c68546a777236befc2840fcfd7b52f26f /gcc/config | |
parent | 49e39588b6c99f93b6a092c43549a85f2fe9c690 (diff) | |
download | gcc-53a833483c71b1cb246ba2ead1b95580d60f9bd5.zip gcc-53a833483c71b1cb246ba2ead1b95580d60f9bd5.tar.gz gcc-53a833483c71b1cb246ba2ead1b95580d60f9bd5.tar.bz2 |
Fix 33524; SSE5 vectorized int->long conversions are broken
From-SVN: r128768
Diffstat (limited to 'gcc/config')
-rw-r--r-- | gcc/config/i386/i386.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index a9ca27b..e208fb4 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -13542,15 +13542,15 @@ ix86_expand_sse5_unpack (rtx operands[2], bool unsigned_p, bool high_p) for (i = 0; i < 16; i++) RTVEC_ELT (v, i) = GEN_INT (pperm_bytes[i]); - for (i = 0; i < 4; i++) + for (i = 0; i < 2; i++) RTVEC_ELT (vs, i) = GEN_INT (i + h2); p = gen_rtx_PARALLEL (VOIDmode, vs); x = force_reg (V16QImode, gen_rtx_CONST_VECTOR (V16QImode, v)); if (unsigned_p) - emit_insn (gen_sse5_pperm_zero_v8hi_v4si (op0, op1, p, x)); + emit_insn (gen_sse5_pperm_zero_v4si_v2di (op0, op1, p, x)); else - emit_insn (gen_sse5_pperm_sign_v8hi_v4si (op0, op1, p, x)); + emit_insn (gen_sse5_pperm_sign_v4si_v2di (op0, op1, p, x)); break; default: |