diff options
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 9 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 2 | ||||
-rw-r--r-- | gcc/config/arm/arm.c | 2 | ||||
-rw-r--r-- | gcc/target.h | 4 |
4 files changed, 13 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index f4060b1..b53da53 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,12 @@ +2017-09-25 Richard Sandiford <richard.sandiford@linaro.org> + + * target.h (vec_perm_indices): Use unsigned short rather than + unsigned char. + (auto_vec_perm_indices): Likewise. + * config/aarch64/aarch64.c (aarch64_vectorize_vec_perm_const_ok): + Use unsigned int rather than unsigned char. + * config/arm/arm.c (arm_vectorize_vec_perm_const_ok): Likewise. + 2017-09-25 Richard Biener <rguenther@suse.de> * cfgloop.h (sort_sibling_loops): Declare. diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index f38540b..9b02c6e 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -13820,7 +13820,7 @@ aarch64_vectorize_vec_perm_const_ok (machine_mode vmode, vec_perm_indices sel) nelt = sel.length (); for (i = which = 0; i < nelt; ++i) { - unsigned char e = d.perm[i]; + unsigned int e = d.perm[i]; gcc_assert (e < 2 * nelt); which |= (e < nelt ? 1 : 2); } diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c index 3671616..f9c1ce3 100644 --- a/gcc/config/arm/arm.c +++ b/gcc/config/arm/arm.c @@ -29261,7 +29261,7 @@ arm_vectorize_vec_perm_const_ok (machine_mode vmode, vec_perm_indices sel) nelt = GET_MODE_NUNITS (d.vmode); for (i = which = 0; i < nelt; ++i) { - unsigned char e = d.perm[i]; + unsigned int e = d.perm[i]; gcc_assert (e < 2 * nelt); which |= (e < nelt ? 1 : 2); } diff --git a/gcc/target.h b/gcc/target.h index 64e1d68..ac43b16 100644 --- a/gcc/target.h +++ b/gcc/target.h @@ -193,11 +193,11 @@ enum vect_cost_model_location { /* The type to use for vector permutes with a constant permute vector. Each entry is an index into the concatenated input vectors. */ -typedef vec<unsigned char> vec_perm_indices; +typedef vec<unsigned short> vec_perm_indices; /* Same, but can be used to construct local permute vectors that are automatically freed. */ -typedef auto_vec<unsigned char, 32> auto_vec_perm_indices; +typedef auto_vec<unsigned short, 32> auto_vec_perm_indices; /* The target structure. This holds all the backend hooks. */ #define DEFHOOKPOD(NAME, DOC, TYPE, INIT) TYPE NAME; |