diff options
| author | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 06:35:37 +0000 |
|---|---|---|
| committer | rth <rth@138bc75d-0d04-0410-961f-82ee72b054a4> | 2005-01-20 06:35:37 +0000 |
| commit | 892e7f8c6b5c57bc3b613ce45e9ebc74cbd1c02e (patch) | |
| tree | 7bdf73468288831d4be85f913fdadd4300139dab | |
| parent | f2ed60da2fbe964cd6e6bdeba351b5e56e16bb18 (diff) | |
| download | ppe42-gcc-892e7f8c6b5c57bc3b613ce45e9ebc74cbd1c02e.tar.gz ppe42-gcc-892e7f8c6b5c57bc3b613ce45e9ebc74cbd1c02e.zip | |
PR target/19427
* config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
shufps elements.
(ix86_expand_vector_extract): Likewise.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@93946 138bc75d-0d04-0410-961f-82ee72b054a4
| -rw-r--r-- | gcc/ChangeLog | 7 | ||||
| -rw-r--r-- | gcc/config/i386/i386.c | 8 |
2 files changed, 11 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e3d1f0d82e2..ca86ebb3622 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,12 @@ 2005-01-19 Richard Henderson <rth@redhat.com> + PR target/19427 + * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth + shufps elements. + (ix86_expand_vector_extract): Likewise. + +2005-01-19 Richard Henderson <rth@redhat.com> + PR middle-end/19304 * expr.c (emit_move_change_mode): New argument force; use simplify_gen_subreg if true. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index cc3cf4b1657..800cd5264cf 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -16269,7 +16269,7 @@ ix86_expand_vector_set (bool mmx_ok, rtx target, rtx val, int elt) /* op0 = A B X D */ emit_insn (gen_sse_shufps_1 (target, target, tmp, GEN_INT (1), GEN_INT (0), - GEN_INT (2), GEN_INT (3))); + GEN_INT (2+4), GEN_INT (3+4))); return; case 2: @@ -16277,7 +16277,7 @@ ix86_expand_vector_set (bool mmx_ok, rtx target, rtx val, int elt) ix86_expand_vector_set (false, target, val, 0); emit_insn (gen_sse_shufps_1 (target, target, tmp, GEN_INT (0), GEN_INT (1), - GEN_INT (0), GEN_INT (3))); + GEN_INT (0+4), GEN_INT (3+4))); return; case 3: @@ -16285,7 +16285,7 @@ ix86_expand_vector_set (bool mmx_ok, rtx target, rtx val, int elt) ix86_expand_vector_set (false, target, val, 0); emit_insn (gen_sse_shufps_1 (target, target, tmp, GEN_INT (0), GEN_INT (1), - GEN_INT (2), GEN_INT (0))); + GEN_INT (2+4), GEN_INT (0+4))); return; default: @@ -16395,7 +16395,7 @@ ix86_expand_vector_extract (bool mmx_ok, rtx target, rtx vec, int elt) tmp = gen_reg_rtx (mode); emit_insn (gen_sse_shufps_1 (tmp, vec, vec, GEN_INT (elt), GEN_INT (elt), - GEN_INT (elt), GEN_INT (elt))); + GEN_INT (elt+4), GEN_INT (elt+4))); break; case 2: |

