Use ssizetype selectors for autovectorised VEC_PERM_EXPRs
authorRichard Sandiford <richard.sandiford@linaro.org>
Tue, 2 Jan 2018 18:27:35 +0000 (18:27 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Tue, 2 Jan 2018 18:27:35 +0000 (18:27 +0000)
commitb00cb3bfa50c5477347082a9450b4a63e4fee263
tree963d6682878902655fb09b1a218b3b9537b7b594
parentd3867483044ae00bac6daaeac6274e95254fb991
Use ssizetype selectors for autovectorised VEC_PERM_EXPRs

The previous patches mean that there's no reason that constant
VEC_PERM_EXPRs need to have the same shape as the data inputs.
This patch makes the autovectoriser use sizetype elements instead,
so that indices don't get truncated for large or variable-length
vectors.

2018-01-02  Richard Sandiford  <richard.sandiford@linaro.org>

gcc/
* tree-cfg.c (verify_gimple_assign_ternary): Allow the size of
the selector elements to be different from the data elements
if the selector is a VECTOR_CST.
* tree-vect-stmts.c (vect_gen_perm_mask_any): Use a vector of
ssizetype for the selector.

From-SVN: r256100
gcc/ChangeLog
gcc/tree-cfg.c
gcc/tree-vect-stmts.c