diff options
author | Jan Hubicka <jh@suse.cz> | 2002-10-29 20:41:35 +0100 |
---|---|---|
committer | Jan Hubicka <hubicka@gcc.gnu.org> | 2002-10-29 19:41:35 +0000 |
commit | f8ca792302bcc455bf7d45f807d71a9f06c4add8 (patch) | |
tree | 27d4c59c3c7ead9c8d08aff4d7458e55a6343fb8 /gcc/simplify-rtx.c | |
parent | c95d07f893f510c270e214445f628e20173d62f1 (diff) | |
download | gcc-f8ca792302bcc455bf7d45f807d71a9f06c4add8.zip gcc-f8ca792302bcc455bf7d45f807d71a9f06c4add8.tar.gz gcc-f8ca792302bcc455bf7d45f807d71a9f06c4add8.tar.bz2 |
re PR target/8322 (SSE2 intrinsics broken?)
* i386.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'H'
* i386.md (movsf*, movdf*): Use 'C' instead of 'H'
* md.texi (machine dependent constraints): Document 'C'
* simplify-rtx.c (simplify_subreg): Fix const_int->vector subregging.
* i386.c (ix86_expand_vector_move): Fix.
* i386.c (ix86_expand_builtin): Use sse2_maskmovdqu_rex64.
* i386.md (sse2_maskmovdqu_rex64): New pattern
PR target/8322
* xmmintrin.h (_mm_stream_pi, _mm_stream_pd): Fix cast.
(ix86_init_mmx_sse_builtins): Fix type.
From-SVN: r58631
Diffstat (limited to 'gcc/simplify-rtx.c')
-rw-r--r-- | gcc/simplify-rtx.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index 3293f0b..52a9250 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -2399,7 +2399,10 @@ simplify_subreg (outermode, op, innermode, byte) /* This might fail, e.g. if taking a subreg from a SYMBOL_REF. */ /* ??? It would be nice if we could actually make such subregs on targets that allow such relocations. */ - elt = simplify_subreg (submode, op, innermode, byte); + if (byte >= GET_MODE_UNIT_SIZE (innermode)) + elt = CONST0_RTX (submode); + else + elt = simplify_subreg (submode, op, innermode, byte); if (! elt) return NULL_RTX; RTVEC_ELT (v, i) = elt; |