diff options
author | Richard Sandiford <richard.sandiford@linaro.org> | 2018-01-02 18:26:16 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2018-01-02 18:26:16 +0000 |
commit | 279b805713fd498afb7986698a2e3406bc947d87 (patch) | |
tree | 93129a39bf65aef7a97f30ca8329f00826514d79 /gcc/int-vector-builder.h | |
parent | 7ac7e2868d450dfb9080166ddc4abcc21b86fab3 (diff) | |
download | gcc-279b805713fd498afb7986698a2e3406bc947d87.zip gcc-279b805713fd498afb7986698a2e3406bc947d87.tar.gz gcc-279b805713fd498afb7986698a2e3406bc947d87.tar.bz2 |
Refactor expand_vec_perm
This patch splits the variable handling out of expand_vec_perm into
a subroutine, so that the next patch can use a different interface
for expanding constant permutes. expand_vec_perm now does all the
CONST_VECTOR handling directly and defers to expand_vec_perm_var
for other rtx codes. Handling CONST_VECTORs includes handling the
fallback to variable permutes.
The patch also adds an assert for valid optab modes to expand_vec_perm_1,
so that we get it when using optabs for CONST_VECTORs. The MODE_VECTOR_INT
part was previously in expand_vec_perm and the mode_for_int_vector part
is new.
Most of the patch is just reindentation.
2018-01-02 Richard Sandiford <richard.sandiford@linaro.org>
gcc/
* optabs.c (expand_vec_perm_1): Assert that SEL has an integer
vector mode and that that mode matches the mode of the data
being permuted.
(expand_vec_perm): Split handling of non-CONST_VECTOR selectors
out into expand_vec_perm_var. Do all CONST_VECTOR handling here,
directly using expand_vec_perm_1 when forcing selectors into
registers.
(expand_vec_perm_var): New function, split out from expand_vec_perm.
From-SVN: r256092
Diffstat (limited to 'gcc/int-vector-builder.h')
0 files changed, 0 insertions, 0 deletions