diff options
author | Uros Bizjak <uros@gcc.gnu.org> | 2009-07-22 15:04:19 +0200 |
---|---|---|
committer | Uros Bizjak <uros@gcc.gnu.org> | 2009-07-22 15:04:19 +0200 |
commit | 1a66936f87bd6fce4765c9cb157734d2f1850282 (patch) | |
tree | f0fb816ee970af01b57baa845827d4de444fc2f8 /gcc | |
parent | af4beb4b957395c1eddac112cf14fa4e53d6c414 (diff) | |
download | gcc-1a66936f87bd6fce4765c9cb157734d2f1850282.zip gcc-1a66936f87bd6fce4765c9cb157734d2f1850282.tar.gz gcc-1a66936f87bd6fce4765c9cb157734d2f1850282.tar.bz2 |
predicates.md (zero_extended_scalar_load_operand): Use CONST_VECTOR_NUNITS to determine number of elements.
* config/i386/predicates.md (zero_extended_scalar_load_operand):
Use CONST_VECTOR_NUNITS to determine number of elements.
From-SVN: r149930
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 8 | ||||
-rw-r--r-- | gcc/config/i386/predicates.md | 11 |
2 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7e939cd..bfafc2a 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2009-07-22 Uros Bizjak <ubizjak@gmail.com> + + * config/i386/predicates.md (zero_extended_scalar_load_operand): + Use CONST_VECTOR_NUNITS to determine number of elements. + 2009-07-22 Andreas Krebbel <krebbel1@de.ibm.com> * config/s390/constraints.md (ZQ, ZR, ZS, ZT): New constraints. @@ -110,7 +115,8 @@ combined_args_to_skip and args_to_skip. * tree-inline.c (update_clone_info): New function. (tree_function_versioning): Call update_clone_info. - * cgraphunit.c: (cgraph_materialize_clone): Dump materialized functions. + * cgraphunit.c: (cgraph_materialize_clone): Dump materialized + functions. (cgraph_materialize_all_clones): More extensive dumping, working with combined_args_to_skip rather than args_to_skip. diff --git a/gcc/config/i386/predicates.md b/gcc/config/i386/predicates.md index 196599b..2a4b61d 100644 --- a/gcc/config/i386/predicates.md +++ b/gcc/config/i386/predicates.md @@ -750,13 +750,12 @@ { unsigned n_elts; op = maybe_get_pool_constant (op); - if (!op) - return 0; - if (GET_CODE (op) != CONST_VECTOR) + + if (!(op && GET_CODE (op) == CONST_VECTOR)) return 0; - n_elts = - (GET_MODE_SIZE (GET_MODE (op)) / - GET_MODE_SIZE (GET_MODE_INNER (GET_MODE (op)))); + + n_elts = CONST_VECTOR_NUNITS (op); + for (n_elts--; n_elts > 0; n_elts--) { rtx elt = CONST_VECTOR_ELT (op, n_elts); |