aboutsummaryrefslogtreecommitdiff
path: root/gcc/int-vector-builder.h
diff options
context:
space:
mode:
authorRichard Sandiford <richard.sandiford@linaro.org>2018-01-02 18:26:16 +0000
committerRichard Sandiford <rsandifo@gcc.gnu.org>2018-01-02 18:26:16 +0000
commit279b805713fd498afb7986698a2e3406bc947d87 (patch)
tree93129a39bf65aef7a97f30ca8329f00826514d79 /gcc/int-vector-builder.h
parent7ac7e2868d450dfb9080166ddc4abcc21b86fab3 (diff)
downloadgcc-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