aboutsummaryrefslogtreecommitdiff
path: root/gcc/simplify-rtx.c
diff options
context:
space:
mode:
authorJan Hubicka <jh@suse.cz>2002-10-29 20:41:35 +0100
committerJan Hubicka <hubicka@gcc.gnu.org>2002-10-29 19:41:35 +0000
commitf8ca792302bcc455bf7d45f807d71a9f06c4add8 (patch)
tree27d4c59c3c7ead9c8d08aff4d7458e55a6343fb8 /gcc/simplify-rtx.c
parentc95d07f893f510c270e214445f628e20173d62f1 (diff)
downloadgcc-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.c5
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;