diff options
author | Paolo Bonzini <bonzini@gnu.org> | 2005-11-07 10:39:36 +0000 |
---|---|---|
committer | Paolo Bonzini <bonzini@gcc.gnu.org> | 2005-11-07 10:39:36 +0000 |
commit | 66180ff3fe8274c23dbbdfa6f0c61ccbf2715195 (patch) | |
tree | 91b6e883aabe9991ac9745b208c6eea4bdfad540 /gcc/config/rs6000/rs6000.h | |
parent | d8e1f97b7ea613d9cf460f470f84525abb4e8c8b (diff) | |
download | gcc-66180ff3fe8274c23dbbdfa6f0c61ccbf2715195.tar.gz |
re PR target/24230 (ICE in extract_insn with altivec)
2005-11-07 Paolo Bonzini <bonzini@gnu.org>
PR target/24230
* config/rs6000/rs6000.c (easy_vector_splat_const, easy_vector_same,
gen_easy_vector_constant_add_self): Delete.
(vspltis_constant, easy_altivec_constant, gen_easy_altivec_constant):
New.
(output_vec_const_move): Use gen_easy_altivec_constant.
(rs6000_expand_vector_init): Do not emit a set of a VEC_DUPLICATE.
* config/rs6000/predicates.md (easy_vector_constant): Reorganize tests.
(easy_vector_constant_add_self): Rewritten.
* config/rs6000/rs6000-protos.h (easy_vector_splat_const,
easy_vector_same, gen_easy_vector_constant_add_self): Remove prototype.
(easy_altivec_constant, gen_easy_altivec_constant): Add prototype.
testsuite:
2005-11-07 Paolo Bonzini <bonzini@gnu.org>
PR target/24230
* gcc.target/powerpc/altivec-consts.c,
gcc.target/powerpc/altivec-splat.c: New testcase.
From-SVN: r106588
Diffstat (limited to 'gcc/config/rs6000/rs6000.h')
-rw-r--r-- | gcc/config/rs6000/rs6000.h | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/config/rs6000/rs6000.h b/gcc/config/rs6000/rs6000.h index 679ccee8144..35843029da8 100644 --- a/gcc/config/rs6000/rs6000.h +++ b/gcc/config/rs6000/rs6000.h @@ -1689,7 +1689,8 @@ typedef struct rs6000_args && !rs6000_tls_referenced_p (X)) #define EASY_VECTOR_15(n) ((n) >= -16 && (n) <= 15) -#define EASY_VECTOR_15_ADD_SELF(n) ((n) >= 0x10 && (n) <= 0x1e && !((n) & 1)) +#define EASY_VECTOR_15_ADD_SELF(n) (!EASY_VECTOR_15((n)) \ + && EASY_VECTOR_15((n) >> 1)) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx and check its validity for a certain class. |