summaryrefslogtreecommitdiff
path: root/gcc/config/rs6000/rs6000.h
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gnu.org>2005-11-07 10:39:36 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2005-11-07 10:39:36 +0000
commit66180ff3fe8274c23dbbdfa6f0c61ccbf2715195 (patch)
tree91b6e883aabe9991ac9745b208c6eea4bdfad540 /gcc/config/rs6000/rs6000.h
parentd8e1f97b7ea613d9cf460f470f84525abb4e8c8b (diff)
downloadgcc-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.h3
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.