From: Segher Boessenkool Date: Fri, 16 Jan 2004 15:05:37 +0000 (+0000) Subject: re PR target/11793 (ICE in extract_insn, at recog.c:2175 (const_vector's)) X-Git-Tag: releases/gcc-3.3.3~86 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=095991eedab59ce4708e2376ff82af615f3d8fc3;p=thirdparty%2Fgcc.git re PR target/11793 (ICE in extract_insn, at recog.c:2175 (const_vector's)) PR target/11793 * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle vectors. From-SVN: r75974 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 32008eecfe0c..2ae63a75de50 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2004-01-16 Segher Boessenkool + + PR target/11793 + * config/rs6000/rs6000.h (LEGITIMATE_CONSTANT_P): Handle + vectors. + 2004-01-16 Jan Hubicka PR opt/11350 diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 957fcecfe1e2..05298b90083c 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1993,9 +1993,11 @@ typedef struct rs6000_args acceptable. */ #define LEGITIMATE_CONSTANT_P(X) \ - (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode \ - || (TARGET_POWERPC64 && GET_MODE (X) == DImode) \ - || easy_fp_constant (X, GET_MODE (X))) + ((GET_CODE (X) != CONST_VECTOR \ + || zero_constant (X, GET_MODE (X))) \ + && (GET_CODE (X) != CONST_DOUBLE || GET_MODE (X) == VOIDmode \ + || (TARGET_POWERPC64 && GET_MODE (X) == DImode) \ + || easy_fp_constant (X, GET_MODE (X)))) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx and check its validity for a certain class.