+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.
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);
}
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);
}
/* 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;