From 095991eedab59ce4708e2376ff82af615f3d8fc3 Mon Sep 17 00:00:00 2001 From: Segher Boessenkool Date: Fri, 16 Jan 2004 15:05:37 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/rs6000/rs6000.h | 8 +++++--- 2 files changed, 11 insertions(+), 3 deletions(-) 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. -- 2.47.2